Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [php] unserialize
Forum PHP.pl > Forum > Przedszkole
ayeo
Witam!
Php jakos dziwnie serializuje zmienne sesji smile.gif Wygląda to mniej więcej tak:
pass|s:6:"dupsko";word|s:7:"halinka";Kazimierz|i:3;
i jest odporne na unserialize...
Jakiś sprytny patent na przerobienie tego na tablice?
nevt
w czym twój problem? dlaczego odczytujesz zserializowaną zawartość sesji...?

do zmiennych sesyjnych odwołujesz się właśnie przez predefiniowana tablicę...
  1. <?php
  2. $pass = $_SESSION['pass'];
  3. $word = $_SESSION['word'];
  4. $Kazimierz = $_SESSION['Kazimierz'];
  5. ?>

odwołujesz się do tablicy globalnej $_SESSION i zmienne zawarte w niej automatycznie są odserializowywane...

manual się kłania... chyba, że chodzi ci o coś zupełnie innego - napisz więcej o problemie - pokaż kod - tak tylko zgaduję....
grzesiek_g
Przechowujesz hasło w sesji w postaci czystego tekstu? Poczytaj o szyfrowaniu haseł, najprościej to wykorzystać jakiś algorytm wbudowany w PHP. Niedawno było o tym na forum.
ayeo
Dzięki za dobre rady Panowie.

@nevt
Chodzi o handler sesji i o wartość przekazywaną do metody _write().

@grzesiek_g
To przykładowy string tylko, trzymajmy się tematu :)

Znalazłem coś takiego:
  1. <?php
  2. $pattern = '/(.*?)|(.*?\";)/';
  3. preg_match_all( $pattern , $data, $match );
  4. $keys = &$match[1];
  5. $vals = &$match[2];
  6. $return = array();
  7. foreach( $keys as $key => $val )
  8. `{
  9. $return[$val] = unserialize( $vals[$key] );
  10. }
  11. print_r($return);
  12. ?>


w wyniku daje:

Array (
[pass] => dupsko
[word] => halinka )

Problem jest tylko z wartosciami liczbowymi. Jak przerobić ten $pattern?? :)

EDIT
Dobra jest ok.
Zmodyfikowałem troche $pattern:
[php]
$pattern = '/(.*?)\|((.*?\";)|(.*? ;) )/';
[php]
PS. forum wycina backshlase więc jednego brakuje przed |
Pozdrawiam !
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.