Witam
Chce przenieść sesje do bazy danych. Zaadaptowałem sobie skrypt na własne potrzeby (widoczny niżej) i nie do końca wiem jak to pchnąć dalej.
Zaincludowałem ten skrypt na strone z logowaniem. W bazie danych jak narazie zapisuje mi się tylko id sessji. Nie zapisują mi się pozostałe dane przechowywane w sesji, czyli, np login i hasło.
Wiem, że w sesji można rejestrować zmienne przez session_register("zmienna"), ale jak wpisać do
nich wartość? Sprawdzałem tablice SESSION i jest ona wypełniona pustymi zmiennymi zarejestrowanymi przez session_register.
Ktoś może pomóc?



  1. <?php
  2.  
  3. //ustawianie handlera sesji
  4.  
  5. session_set_save_handler("session_open", "session_close", "session_read", "session_write", 
  6.  
  7. "session_remove", "session_gc");
  8.  
  9.  
  10. gusers_
  11.  
  12. $id = session_id();
  13.  
  14. //Funkcje obsługujące sesje
  15.  
  16. //otwieranie sesji
  17. function session_open()
  18. {
  19. return(true);
  20. } 
  21.  
  22. //zamykanie sesji
  23. function session_close()
  24. {
  25. return(true);
  26. } 
  27.  
  28. //odczytywanie danych z sesji
  29.  
  30. function session_read($id)
  31. {
  32. $select = "SELECT * FROM g_sesje WHERE sesje_id='" . $id . "'";
  33.  
  34. $result = mysql_query($select)
  35.  
  36. or die ('Nie mogę sprawdzić statusu sesji: ' . mysql_error());
  37.  
  38. if(mysql_num_rows($result) == "1")
  39. {
  40. while($row=mysql_fetch_assoc($result))
  41. {
  42. $row_data = $row['data'];
  43. }
  44. return $row_data;
  45. }
  46. else
  47. {
  48. $insert = "INSERT INTO g_sesje (sesje_id) VALUES ('" . $id . "')";
  49.  
  50. $result = mysql_query($insert)
  51.  
  52. or die ('Nie potrafię stworzyć nowej sesji: ' . mysql_error());
  53.  
  54. return (true);
  55. }
  56. }
  57.  
  58. //zapis danych sesji
  59.  
  60. function session_write($id, $data)
  61. {
  62.  
  63. $select = "SELECT * FROM g_sesje WHERE sesje_id='" . $id . "'";
  64.  
  65. $result = mysql_query($select)
  66.  
  67. or die ('Nie mogę sprawdzić statusu sesji: ' . mysql_error());
  68.  
  69. while($row=mysql_fetch_assoc($result))
  70. {
  71. $row_data = $row['data'];
  72. }
  73.  
  74. if($row_data != $data)
  75. {
  76. $update_data = $row_data . $data;
  77.  
  78. $update = "UPDATE g_sesje SET sesje_data='" . $update_data . "' WHERE sesje_id='" . 
  79.  
  80. $id . "'";
  81.  
  82. $result = mysql_query($update)
  83.  
  84. or die ('Nie mogę zaktualizować danych sesji: ' . mysql_error());
  85. }
  86. }
  87.  
  88. //usuwanie sesji
  89.  
  90. function session_remove($id)
  91. {
  92.  
  93. echo 'funkcja remove';
  94. $delete = "DELETE FROM g_sesje WHERE sesje_id='" . $id . "'";
  95.  
  96. $result = mysql_query($delete)
  97.  
  98. or die ('Nie mogę usunąć sesji: ' . mysql_error());
  99.  
  100. return(true);
  101. }
  102.  
  103. //usuwanie starych rekordów z sesji
  104.  
  105. function session_gc($life)
  106. {
  107.  
  108. $delete05 = "DELETE FROM g_sesje WHERE sesje_time < '" . date("YmdHis", time() - $life) . 
  109.  
  110. "'";
  111.  
  112. $result = mysql_query($delete)
  113.  
  114. or die ('Nie mogę usunąć sesji: ' . mysql_error());
  115.  
  116. return(true);
  117. }
  118. ?>