Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [php] sesje, wyrejestrowywanie zmiennych
Forum PHP.pl > Forum > Przedszkole
fear
Witam

moj problem polega na tym, iż chce zacząć używać tablic wielowymiarowej dla zmiennych sesyjnych i nie wiem jak wyrejestrowac dany wymiar tablicy.

gdy tablica sesyjna ma jeden wymiar(lub ma ich wiecej, ale chcemy wyrejestrowac cala tablica, wraz z jej wymiarami) to wiadomo, uzywamy:
  1. <?php
  2. session_unregister('nazwa zmiennej');
  3. ?>


w przypadku zwyklych tablic(np, przesylanych postem lub getem) usuniecie wybranego indexu tablicy wielowymiarowej nie jest problem bo nazwa zmiennej jest w nawiasach [ ]
  1. <?php
  2. unset($_POST['nazwa zmiennej']['index2']);
  3. ?>


jak wyrejestrowywac z sesji wybrany wymiar tablicy wielowymiarowej ?
dla przykladu, chcialbym wyrejestrowac tylko 2 wymiar tablicy ( [1] ):
  1. <?php
  2. $_SESSION['test'][0] = '0';
  3. $_SESSION['test'][1] = '1';
  4. $_SESSION['test'][2] = '2';
  5. ?>

czyli, że po wyrejestrowaniu w tablicy pozostalo by tylko
  1. <?php
  2. $_SESSION['test'][0] = '0';
  3. $_SESSION['test'][2] = '2';
  4. ?>


czy może ktoś mi pomóc? zaznaczam, że prześledziłem temat session_unregister() w manualu
mike
Cytat(fear @ 5.08.2006, 12:25 ) *
zaznaczam, że prześledziłem temat session_unregister() w manualu

Oj chyba niedokładnie tongue.gif

Cytat
Uwaga!

Jeśli używasz $_SESSION (lub $HTTP_SESSION_VARS), nie używaj session_register(), session_is_registered() i session_unregister().


Najlepiej zostaw funkcje session_register(), session_is_registered() i session_unregister() - są mało wygodne.
Zacznij stosowac tylko $_SESSION[] i unset()
fear
no tak, ale w komentarzach napisane jest

Cytat
unset($_SESSION['varname']) will only unset the session var on the current page.


a jeśli dobrze rozumiem, to będą one wyrejestrowane dla aktualnie otwartej strony. Czyli poza ta strona zmienne sesyjne będa dalej dostepne... czy nie?
fear
Cytat
Ta funkcja nie usuwa zmiennej globalnej o nazwie nazwa, a jedynie zapobiega zapisaniu tej zmiennej jako części sesji. Jeśli chcesz usunąć odpowiednią zmienną globalną, musisz użyć funkcji unset().


ehhh.. moze i masz racje... czyli po uzyciu unset() na nastepnych stronach wykorzystujacych tą sesję zmienne ktore usunolem nie będą dostępne? nie będą już one zapisywane do sesji?
mike
Cytat(fear @ 5.08.2006, 12:38 ) *
ehhh.. moze i masz racje... czyli po uzyciu unset() na nastepnych stronach wykorzystujacych tą sesję zmienne ktore usunolem nie będą dostępne? nie będą już one zapisywane do sesji?

Dokładnie.
Jeśli wyrzucisz usuniesz zmienna sesyjną z apomocę unset() nie będzie ona juz istniała w sesji.
fear
dziekuje i 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.