Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [MySQL][PHP] Pytania nt. logowania.
Forum PHP.pl > Forum > Przedszkole
GoldeNx3
Witam. Mam kilka pytań.

1. Mam skrypt z rejestracją, logowaniem etc. Gdy gracz się loguje i zaznaczy "Zapamiętaj", to przez 14 dni pamięta jego dane. Ale jak mogę sprawdzić, czy te dane wciąż istnieją?

2. W czym mogę przechowywać z bazy danych kto ile ma punktów? Ponieważ zapisałem je w sesji, czy to dobry wybór?

3. Jeżeli gracz wciśnie "Przypomnij hasło" to na emaila przyjdzie mu nowe hasło, a jak zrobić, by po wejściu na stronę, mógł je od razu zmienić?
pmir13
Dane przechowywane w sesji są ulotne. Sesje służą do tego, by wchodząc na różne podstrony lub na tą samą stronę pamiętać jakieś chwilowe stany, na przykład po to, by ktoś nie musiał się co chwilę logowac. Jeśli jednak chcesz pamiętać takie dane dłużej niż spodziewany w miarę ciągły czas spędzony przy przeglądarce bez wygaśnięcia sesji musisz zapisać to gdzieś indziej, w przypadku danych logowania oczywiście nasuwa się cookie, jako że chcemy powiązać te dane z komputerem gracza.
Punkty to już obowiązkowo w bazie danych, bo nie dotyczą komputera użytkownika, tylko jego postaci. Powinieneś mieć kolumnę punkty w tabeli users albo w tabeli accounts, jeśli można mieć więcej niż jedną postać i punkty mają być wspólne dla nich wszystkich. Zresztą przecież wywołujesz zapytanie do bazy danych w linii 13, więc logiczne że gdzieś indziej przy kupowaniu punktów musi być zapytanie typu
  1. UPDATE users SET points = points + iledodac WHERE login='jakistam'

i podobne zapytania do sprawdzania punktów i odejmowania jak gość coś tam za te punkty kupi i stać go.
GoldeNx3
Tabele z punktami i to wszystko mam. Tylko chciałem się upewnić, czy przechowywanie punktów jest lepsze w sesji czy ciasteczku korzystając z bazy danych, ale wywnioskowałem, że w sesji.

To teraz jeżeli już gracz ma zapisane te ciasteczka, to przy wchodzeniu na stronę jak sprawdzić, czy zapisane dane w ciasteczkach figurują dalej w bazie? A jak nie, to po prostu wylogować.
pmir13
Ciasteczka to są wartości zapisane w pliku znajdującym się na komputerze użytkownika, w folderze cookies lub podobnym odpowiednim dla jego przeglądarki.
W każdej przeglądarce możesz sobie wyświetlić jakie aktualnie masz zapisane cookies, możesz je także na przykład wyczyścić lub ręcznie zmienić.
Nie byłoby chyba dobrze gdyby ktoś mógł tam sobie punkty dodawać, nie sądzisz?
Baza danych znajduje się na twoim serwerze i użytkownik dostępu do niej nie ma (a przynajmniej nie powinien). Operacje na bazie danych wykonuje skrypt php na podstawie akcji użytkowników, możesz też zmieniać je ręcznie korzystając z jakiegoś klienta mysql, dane w bazie są trwałe i nie zmieniają się same z siebie.
Sesja wykorzystuje ciasteczka lub długie unikalne identyfikatory w urlu (GET) do zapisywania faktu korzystania z tej sesji przez użytkownika, a u ciebie na serwerze przechowywane są dla każdego identyfikatora sesji jakieś chwilowe dane. Sesja może wygasnąć, wtedy zapamiętane dane są tracone.
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.