Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> $_session W Własnym Session Handlerze
LukasMG
post 20.07.2004, 13:33:07
Post #1





Grupa: Zarejestrowani
Postów: 23
Pomógł: 0
Dołączył: 8.07.2004

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


Napisałem sobie session handlera opartego na mysqlu i posiadam klasę odpowiadającą za zapis do bazy:
  1. <?php
  2.  
  3.         function _session_save($id, $value){
  4.                 $zapytanie = mysql_query('INSERT INTO `sessions`
  5.                                         (`id`, `session_start`, `session_value`, `ostatnia_aktywnosc`)
  6.                                         VALUES (\"'.$id.'\"\"'.time().'\"\"'.$value.'\"\"'.time().'\")
  7.                                         ');
  8.                 if($zapytanie){
  9.                 
  10.                         return true;
  11.                 }
  12.                 
  13.                 else{
  14.                 
  15.                 $zapytaniee = mysql_query('UPDATE `sessions` SET
  16.                                         `session_value` = \"'.$value.'\", `ostatnia_aktywnosc` = \"'.time().'\"
  17.                                         where `id` =  \"'.$id.'\"
  18.                                         ');
  19.                                         
  20.                                         
  21.                 if($zapytaniee){
  22.                 
  23.                         return true;
  24.                         
  25.                 }
  26.                 else{
  27.                 
  28.                         return false;
  29.                         
  30.                  }
  31.                 }
  32.          }
  33.  
  34. ?>


Wszytko fajnie działa, handler zapisuje sesje, zapisuje zmienną gdy używana jest funkcja session_register jednak gdy chcę użyc tablicy $_SESSION to handler wogóle nie przekazuje sterowania funkcji odpowiedzialne za zapis.
Użycie tablicy jest wogóle możliwe w własnym session handlerze?

UPDATE:

A najlepsze jest to gdy w skrypcie wogóle pojawi się tablica $_SESSION to sesja nie jest tworzona blink.gif

  1. <?php
  2.  
  3. $_SESSION['a'] = 'x';
  4.  
  5. ?>


Ten post edytował LukasMG 20.07.2004, 16:23:19


--------------------
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 3)
Dabroz
post 20.07.2004, 14:00:31
Post #2





Grupa: Zarejestrowani
Postów: 286
Pomógł: 0
Dołączył: 1.11.2003
Skąd: Poland, Płock

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


Gdyby to było C, to mógłbyś przeładować operator [] w klasie, a potem zadeklarować zmienną... ale w php (a zwłaszcza 4) to nie wiem tongue.gif


--------------------
Go to the top of the page
+Quote Post
LukaszLenart
post 20.07.2004, 20:13:42
Post #3





Grupa: Zarejestrowani
Postów: 38
Pomógł: 0
Dołączył: 22.11.2003
Skąd: Sucha Beskidzka

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


Jak jest ustawiona register_globals w php.ini ?
Go to the top of the page
+Quote Post
LukasMG
post 20.07.2004, 20:27:08
Post #4





Grupa: Zarejestrowani
Postów: 23
Pomógł: 0
Dołączył: 8.07.2004

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


Globalsy są na off. Ale myśle że nie tak tkwi problem

I znalazłem bład który psuł całym mechanizm...

W całej mej głupocie zapomniałem sprawdzic co zwraca mi funkcja mysql_error" title="Zobacz w manualu PHP" target="_manual...

Otóż zapytanie
  1. <?php
  2.  
  3. $zapytanie = mysql_query('INSERT INTO `sessions`
  4. (`id`, `session_start`, `session_value`, `ostatnia_aktywnosc`)
  5. VALUES (\"'.$id.'\"\"'.time().'\"\"'.$value.'\"\"'.time().'\")
  6. ');
  7.  
  8. ?>


zwraca błąd, ponieważ zserializowana wartość sesji zawiera znaki które rozsypują wyrażenie z cudzysłowiami.
Poprawnie powinno wszytko wyglądać:

  1. <?php
  2.  
  3. $zapytanie = mysql_query(&#092;"INSERT INTO `\".$this->table_name.\"`
  4. (`id`, `session_start`, `session_value`, `ostatnia_aktywnosc`)
  5. VALUES ('\".$id.\"', '\".time().\"', '\".$value.\"', '\".time().\"')
  6. &#092;");
  7.  
  8. ?>


Dziękuje wszytkich za zainteresowanie tematem. smile.gif

Ten post edytował LukasMG 21.07.2004, 09:26:39


--------------------
Go to the top of the page
+Quote Post

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: 19.07.2025 - 19:44