![]() |
![]() |
-gosc- |
![]()
Post
#1
|
Goście ![]() |
Witam,
Napisałem swojego Session Handlera, wszystko działa, tylko jest mały szczegół. PHP nie generuje mi zawsze 32-znakowego identyfikatora sesji, tylko krótszy, np. 26-znakowy, 28-znakowy - różnie, jednak za każdym razem inaczej. Czy PHP powinien domyślnie generować tylko 32-znakowe identyfikatory, czy założenie twórców języka jest, że ma to być ciąg do 32 znaków? A może mam coś żle ustawione w php.ini? Druga sprawa, to problem wykorzystanie Uchwytu Sesji w pewnym fragmencie kodu. Otóż mam klasę odpowiedzialną za generowania 5-znakowych stringów i wstawianie ich do pliku graficznego, czyli pospolity token. Problem rozwiązuje w ten sposób, że utworzyłem plik token.php, a w nim instancję klasy Token wraz z metodą wyświetlająca obrazek. Do tego pliku odwołuję się w pliku register.tpl (używam systemu szablonów Smarty) i po prostu wstawiam do niego odwołanie w znacznikach <img>. Obrazek wyświetla się poprawnie. Mój problem polega jednak na tym, że w pliku token.class.php nie mogę powtórnie (bo pierwszy raz jest to zrobione register.php) uruchomić sesji przez klasę do obsługi sesji. Wtedy dostaję informację, że albo obrazek zawiera błędy, albo nie jest on generowany. Muszę jednak zrobić jakoś wywołać sesję bo nie widzę innego sposobu, aby zachować wygenerowany string tokenowy pomiędzy odświeżeniami. Jak rozwiązać ten problem? |
|
|
![]() |
![]()
Post
#2
|
|
Grupa: Moderatorzy Postów: 15 467 Pomógł: 1451 Dołączył: 25.04.2005 Skąd: Szczebrzeszyn/Rzeszów ![]() |
Cytat Muszę jednak zrobić jakoś wywołać sesję bo nie widzę innego sposobu, aby zachować wygenerowany string tokenowy pomiędzy odświeżeniami. W URL-u jakiś parametr typu request id i przechowywać dane w sesji, np.
które po użyciu kasujesz. Cytat PHP nie generuje mi zawsze 32-znakowego identyfikatora sesji, tylko krótszy, np. 26-znakowy, 28-znakowy - różnie, jednak za każdym razem inaczej W manualu masz coś takiego: Cytat session.hash_function integer session.hash_function allows you to specify the hash algorithm used to generate the session IDs. '0' means MD5 (128 bits) and '1' means SHA-1 (160 bits). W komentarzach: Cytat You may for example set it to 1 to switch to SHA-1 which produces 160 bits (20 bytes) long hashes.
Please also note that another setting was introduced in PHP 5 (session.hash_bits_per_character) which sort of "compresses" the hash. Thus, resulting in what seems to be a shorter hash. |
|
|
![]() ![]() |
![]() |
Aktualny czas: 8.10.2025 - 23:19 |