Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [session handler] czytanie zmiennych sesji, php dziwnie przechowywuje zmienne sesji
aleksander
post
Post #1





Grupa: Przyjaciele php.pl
Postów: 742
Pomógł: 0
Dołączył: 14.12.2003
Skąd: Gdańsk, Trójmiasto

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


Witam,

mam napisanego session handlera, który dane przechowywuje w mysql. W artykule o SH na php.pl przeczytałem, że zmienne sesyjne są serializowane. Chciałem zrobić moduł "userzy on line" wiec wybrałem wszystkie wpisy z DB i probowalem odserializowac. Okazało się, że te dane nie są zaserializowane tylko zapisane w jakiś dziwny sposób. Czy ktoś może mi odpowiezieć, jak taki string, który przedstawiam poniżej zamienić na tablice assoc?
Kod
userid;s:1:"1";login;s:4:"olek";roles;s:54:"editMenus;viewNews;manageNews;viewComments;addComments";groupid;s:1:"1";groupName;s:13:"Administrator";lang;s:2:"pl";
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
kwiateek
post
Post #2





Grupa: Zarejestrowani
Postów: 223
Pomógł: 0
Dołączył: 13.01.2003
Skąd: 3rd ball of mud behind a big ball of burning gas

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


Coś bardziej wydajnego (-;

  1. <?php
  2. function unserializeSessionData($serizalizedData) {
  3. $data = array();
  4. $elements = preg_split( &#092;"/(w+)|/\", $serizalizedData, -1, PREG_SPLIT_NO_EMPTY | PREG_SPLIT_DELIM_CAPTURE);
  5. for ($i = 0; $i < count($elements); $i = $i+2) {
  6. $data[$elements[$i]] = unserialize($elements[$i+1]);
  7. }
  8.  
  9. return $data;
  10. }
  11. ?>

Przykład użycia:
  1. <?php
  2. $foo = 'userid|s:1:\"0\";login|s:9:\"anonymous\";roles|s:41:\"useAuth;viewNews;viewComments;addComments\";groupid|s:1:\"2\";groupName|s:10:\"U?ytkownik\";lang|s:2:\"pl\";';
  3. $data = unserializeSessionData($foo);
  4.  
  5. var_dump($data);
  6.  
  7. ?>

Output:
Kod
array(6) {
  ["userid"]=>
  string(1) "0"
  ["login"]=>
  string(9) "anonymous"
  ["roles"]=>
  string(41) "useAuth;viewNews;viewComments;addComments"
  ["groupid"]=>
  string(1) "2"
  ["groupName"]=>
  string(10) "U?ytkownik"
  ["lang"]=>
  string(2) "pl"
}
Go to the top of the page
+Quote Post

Posty w temacie


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

 



RSS Aktualny czas: 10.10.2025 - 19:30