Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Przechowywanie sesji w bazie MySQL
cichy19-
post 14.07.2008, 13:37:27
Post #1





Grupa: Zarejestrowani
Postów: 100
Pomógł: 0
Dołączył: 5.06.2006

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


Witam,

Przerabiam skrypt aby sesje były przechowywane w bazie danych MySQL.
W głównym pliku w którym wcześniej była tylko funkcja session_start() wstawiłem przed nią poniższy plik przez include sessions.inc.php

  1. <?php
  2. if(!$SessLife = get_cfg_var('session.gc_maxlifetime')) {
  3. $SessLife = 1440;
  4. }
  5.  
  6. function SessOpen($save_path, $session_name) {
  7. return true;
  8. }
  9.  
  10. function SessClose() {
  11. return true;
  12. }
  13.  
  14. function SessRead($key) {
  15. $ValueQuery = mysql_query("SELECT session_value FROM sessions WHERE session_id='".$key."' AND session_expiry>'".time()."'");
  16. $value = mysql_fetch_array($ValueQuery);
  17.  
  18. if(isset($value['session_value'])) {
  19. return $value['session_value'];
  20. }
  21.  
  22. return false;
  23. }
  24.  
  25. function SessWrite($key, $val) {
  26. global $SessLife;
  27.  
  28. $expiry = time() + $SessLife;
  29. $value = $val;
  30.  
  31. $CheckQuery = mysql_query("SELECT count(*) as total FROM sessions WHERE session_id='".$key."'");
  32. $check = mysql_fetch_array($CheckQuery);
  33.  
  34. if($check['total'] > 0) {
  35. return mysql_query("UPDATE sessions SET session_expiry='".$expiry."', session_value='".$value."' WHERE session_id='".$key."'");
  36. } else {
  37. return mysql_query("INSERT INTO sessions VALUES ('".$key."', '".$expiry."', '".$value."')");
  38. }
  39. }
  40.  
  41. function SessDestroy($key) {
  42. return mysql_query("DELETE FROM sessions WHERE session_id='".$key."'");
  43. }
  44.  
  45. function SessGc($maxlifetime) {
  46. mysql_query("DELETE FROM sessions WHERE session_expiry<'".time()."'");
  47.  
  48. return true;
  49. }
  50.  
  51. session_set_save_handler('SessOpen', 'SessClose', 'SessRead', 'SessWrite', 'SessDestroy', 'SessGc');
  52. ?>


Niby wszystko jest dobrze bo sesje zapisują się w bazie jednak problem jest w tym że nie można zalogować się do serwisu.
Nie pokazuje żadnego błędu tylko odświeża stronę.
Dodam że w pliku logowania przy poprawnym wpisaniu danych mam poniższy kod:

  1. <?php
  2. $_SESSION["zalogowany_id"] = intval(mysql_result($Result, 0, "id"));
  3. $_SESSION["zalogowany_nick"] = stripslashes(mysql_result($Result, 0, "nick"));
  4. ?>


Bardzo proszę o pomoc i z góry dziękuję.

Nikt mi nie pomoże w tym temacie?

Nadal brak jakiejkolwiek odpowiedzi sad.gif

Ten post edytował cichy19- 14.07.2008, 09:38:03
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 Wersja Lo-Fi Aktualny czas: 14.08.2025 - 10:38