Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [php] unserialize
ayeo
post
Post #1





Grupa: Przyjaciele php.pl
Postów: 1 202
Pomógł: 117
Dołączył: 13.04.2007
Skąd: 127.0.0.1

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


Witam!
Php jakos dziwnie serializuje zmienne sesji (IMG:http://forum.php.pl/style_emoticons/default/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?
Go to the top of the page
+Quote Post
nevt
post
Post #2





Grupa: Przyjaciele php.pl
Postów: 1 595
Pomógł: 282
Dołączył: 24.09.2007
Skąd: Reda, Pomorskie.

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


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ę....

Ten post edytował nevt 5.12.2007, 08:47:12
Go to the top of the page
+Quote Post
grzesiek_g
post
Post #3





Grupa: Zarejestrowani
Postów: 249
Pomógł: 30
Dołączył: 18.07.2007

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


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.
Go to the top of the page
+Quote Post
ayeo
post
Post #4





Grupa: Przyjaciele php.pl
Postów: 1 202
Pomógł: 117
Dołączył: 13.04.2007
Skąd: 127.0.0.1

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


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 !

Ten post edytował ayeo 5.12.2007, 13:29:49
Go to the top of the page
+Quote Post

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: 23.08.2025 - 20:29