Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Wersja PHP 5.4
marcinek37
post 27.11.2012, 22:22:49
Post #1





Grupa: Zarejestrowani
Postów: 239
Pomógł: 0
Dołączył: 2.06.2011

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


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?
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 10)
markonix
post 27.11.2012, 22:24:27
Post #2





Grupa: Zarejestrowani
Postów: 2 707
Pomógł: 290
Dołączył: 16.12.2008
Skąd: Śląsk

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


unset ?


--------------------
Go to the top of the page
+Quote Post
marcinek37
post 27.11.2012, 22:50:04
Post #3





Grupa: Zarejestrowani
Postów: 239
Pomógł: 0
Dołączył: 2.06.2011

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


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...
Go to the top of the page
+Quote Post
Szymciosek
post 27.11.2012, 22:55:08
Post #4





Grupa: Zarejestrowani
Postów: 1 168
Pomógł: 126
Dołączył: 5.02.2010
Skąd: Świdnica

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


Tak, albo unset($_SESSION);
Go to the top of the page
+Quote Post
marcinek37
post 27.11.2012, 22:57:33
Post #5





Grupa: Zarejestrowani
Postów: 239
Pomógł: 0
Dołączył: 2.06.2011

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


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?
Go to the top of the page
+Quote Post
markonix
post 27.11.2012, 23:15:43
Post #6





Grupa: Zarejestrowani
Postów: 2 707
Pomógł: 290
Dołączył: 16.12.2008
Skąd: Śląsk

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


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


--------------------
Go to the top of the page
+Quote Post
CuteOne
post 27.11.2012, 23:21:23
Post #7





Grupa: Zarejestrowani
Postów: 2 958
Pomógł: 574
Dołączył: 23.09.2008
Skąd: wiesz, że tu jestem?

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


Mogę się mylić ale chodziło chyba o zmienne globalne i ich wpływ na sesje?
Go to the top of the page
+Quote Post
cudny
post 27.11.2012, 23:23:01
Post #8





Grupa: Zarejestrowani
Postów: 387
Pomógł: 66
Dołączył: 31.03.2005
Skąd: Kielce

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


Cytat(Szymciosek @ 27.11.2012, 22:55:08 ) *
Tak, albo unset($_SESSION);


Jeśli masz tablice wielowymiarowe w sesji to możesz się zdziwić


--------------------
..::: Jak pomogłem to kliknij pomógł. Tak rzadko używacie tej opcji :( :::..
Go to the top of the page
+Quote Post
Szymciosek
post 27.11.2012, 23:26:18
Post #9





Grupa: Zarejestrowani
Postów: 1 168
Pomógł: 126
Dołączył: 5.02.2010
Skąd: Świdnica

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


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


Rozwiń myśl.
Go to the top of the page
+Quote Post
marcinek37
post 27.11.2012, 23:26:23
Post #10





Grupa: Zarejestrowani
Postów: 239
Pomógł: 0
Dołączył: 2.06.2011

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


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


Ten post edytował marcinek37 28.11.2012, 00:14:09
Go to the top of the page
+Quote Post
cudny
post 28.11.2012, 11:55:04
Post #11





Grupa: Zarejestrowani
Postów: 387
Pomógł: 66
Dołączył: 31.03.2005
Skąd: Kielce

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


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 ?


--------------------
..::: Jak pomogłem to kliknij pomógł. Tak rzadko używacie tej opcji :( :::..
Go to the top of the page
+Quote Post

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

 



RSS Wersja Lo-Fi Aktualny czas: 14.08.2025 - 14:29