Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Wersja PHP 5.4
Forum PHP.pl > Forum > PHP
marcinek37
W wersji PHP 5.4 wyleciała m.in. funkcja o nazwie session_unregister().
Czy ktoś może mi wyjaśnić, dlaczego i jak temu zaradzić?
W jaki sposób można teraz wykonać usunięcie sesji?
markonix
unset ?
marcinek37
czyli mam użyć takiego kodu:
unset($_SESSION['sesja']) questionmark.gif

czy wszyscy tak piszą swoje aplikacje? bo przyznam szczerze, pierwszy raz spotykam się z czymś takim...
Szymciosek
Tak, albo unset($_SESSION);
marcinek37
druga wersja mi nie odpowiada, bo czasem w sesji jest kilka wartości, a ja chcę skasować tylko jedną

to dziwne, że piszecie o tym tak oczywiście, a nawet na tym forum w miarę nowych wpisach można znaleźć starą funkcję
wie ktoś może, dlaczego doszło do takich zmian?
markonix
Ja nie widzę tutaj konieczności utrzymywania odrębnych funkcji do inicjowania i kasowania zmiennych sesji gdy można je traktować jak każdą inną zmienną (tablicową).
To tak jakbyś robił funkcje unset_post, unset_get dla tablicy $_POST i $_GET...
CuteOne
Mogę się mylić ale chodziło chyba o zmienne globalne i ich wpływ na sesje?
cudny
Cytat(Szymciosek @ 27.11.2012, 22:55:08 ) *
Tak, albo unset($_SESSION);


Jeśli masz tablice wielowymiarowe w sesji to możesz się zdziwić
Szymciosek
Cytat(cudny @ 27.11.2012, 23:23:01 ) *
Jeśli masz tablice wielowymiarowe w sesji to możesz się zdziwić


Rozwiń myśl.
marcinek37
w sumie to macie rację, trzeba ją traktować jak każdą inną zmienną, a zatem od teraz będę używać wyłącznie funkcji unset


Ci, którzy będą mieli z tym problem w wielkich aplikach, niech skorzystają z tego kodziku, który naprędce musiałem napisać:
  1. <?
  2. if(!function_exists('session_unregister')){
  3. function session_unregister($value){
  4. unset($_SESSION[$value]);
  5. }
  6. }
  7. ?>
cudny
Cytat(Szymciosek @ 27.11.2012, 23:26:18 ) *
Rozwiń myśl.


Wtakim wypadku wykonaj prosty test:

Odpal najpierw to:
  1. $_SESSION['test'] = array('test1'=>array('test2','test3','test4','test5'),array('t1'=>array('cc'=>array('a','b')),'t2','t3','t4'));
  2. //unset($_SESSION);
  3. echo '<pre>';
  4. print_r($_SESSION);


potem to:
  1. //$_SESSION['test'] = array('test1'=>array('test2','test3','test4','test5'),array('t1'=>array('cc'=>array('a','b')),'t2','t3','t4'));
  2. unset($_SESSION);
  3. echo '<pre>';
  4. //print_r($_SESSION);


A teraz to:
  1. //$_SESSION['test'] = array('test1'=>array('test2','test3','test4','test5'),array('t1'=>array('cc'=>array('a','b')),'t2','t3','t4'));
  2. //unset($_SESSION);
  3. echo '<pre>';
  4. print_r($_SESSION);


Jaki wynik ?
Czy unset($_SESSION); zadziałało ?
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.