Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Szybkie odświeżanie strony - gubi wartości
sulewski
post
Post #1





Grupa: Zarejestrowani
Postów: 2
Pomógł: 0
Dołączył: 24.11.2009

Ostrzeżenie: (0%)
-----


  1. function reGenerateUID()
  2. {
  3. $old_uid = $this->client->uid; // pobrane z cookies
  4. $new_uid = $this->client->generateUID(); // tworzy nowe z uniqid(mt_rand(), true)
  5. if (setcookie("UID", $new_uid, time()+(3600*24*365), "/"))
  6. {
  7. $stmt = $this->db->prepare('UPDATE sessions SET uid=:new_uid, timestamp=now() WHERE uid=:old_uid');
  8. $stmt->bindParam(':new_uid', $new_uid, PDO::PARAM_STR, 33);
  9. $stmt->bindParam(':old_uid', $old_uid, PDO::PARAM_STR, 33);
  10. $stmt->execute();
  11. $stmt->closeCursor();
  12.  
  13. $this->client->uid = $new_uid;
  14.  
  15. return true;
  16. }
  17. return false;
  18. }


W cookies przechowuję unikalny identyfikator, na podstawie którego sprawdzam w bazie danych, czy użytkownik jest zalogowany (taka własna implementacja sesji).
Funkcja jest wywoływana za każdym razem, zaraz po sprawdzeniu, że użytkownik jest zalogowany - odpowiednik session_regenerate_id().

Problem jest taki, że jeśli jako zalogowany użytkownik szybko odświeżam stronę (F5), to po kilku razach w cookie mam inny UID niż jest w bazie - i zostaję wylogowany. Jeśli odświeżam w normalnym tempie, wszystko działa poprawnie.

Ten post edytował sulewski 25.11.2009, 21:20:01
Go to the top of the page
+Quote Post

Posty w temacie


Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 20.08.2025 - 06:34