Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Sesje i mały(?) problem
Forum PHP.pl > Forum > Przedszkole
Craven
Mam zarejestrowaną sesję i warunek(przykładowo):

if (session_is_registered('user'))
{
wybor{$user} (nie działa)
}

Jak mogę odczytać (i czy to wogóle możliwe) wartość zmiennej user z warunku if (mam nadzieje że napisałem w miare zrozumiale). Dzięki za pomoc (jeśli ktoś pomoże).
R4v3N
  1. <?php
  2. if($_SESSION['user']) {
  3. printf("user: %s", $_SESSION['user']); 
  4. }
  5. ?>


Jezeli zmienna user jest zarejestrowana w sessji i ma jakas wartosc ten warunek wyswietli jej wartosc.

W przeciwnym wypadku nic nie zrobi tongue.gif

pozdro
nospor
nie
  1. <?php
  2. if($_SESSION['user']) ...
  3. ?>

a
  1. <?php
  2. if(isset($_SESSION['user']))... 
  3. ?>


nie danie isset spowoduje, w przypadku braku user, plucie notice'ami
R4v3N
kazdan niezdefiniowana zmienna w php przy wywolaniu ma wartosc NULL, to nie jest przecierz C, ze pod adresem tej zmiennej moze byc cokolwiek.

Jak dla mnie to wystarczy sprawdzic czy ma wartosc != 0
nospor
w przypadku gdy odwolujesz sie do zmiennej, ktorej nie ma, generowany jest notice. nie powoduje do bledu aplikacji jako takiego, ale jest malo eleganckie. tak wiec dobrym zwyczajem jest najpierw sprawdzenie czy zmienna wogole istnieje. Mozna ewentualnie uzyc empty, ktore nie generuje noticów gdy zmiennej brak.

W tym przypadku naszą zmienna jest index user w tabeli $_SESSION
mike
Cytat(nospor @ 2006-01-10 08:41:54)
(...) nie powoduje do bledu aplikacji jako takiego, ale jest malo eleganckie. tak wiec dobrym zwyczajem jest najpierw sprawdzenie czy zmienna wogole istnieje. (...)

~nospor dobrze gada smile.gif

A ponadto wszelkie powiadomienia typu notice (nawet stłumione odpowiednimi ustawieniami dyrektywy error_reporting w pliku php.ini) powodują opóźnienia wykonania skryptu.

Kiedy kod jest źle napisany i zaniechane jest jakiekolwiek sprawdzanie zmiennych czas działania może być dłuższy nawet o 30% (informacjie wyczytane w jednym z czasopism).

Tak więc jest to, owszem kwestie elegancji, ale poparta konkretnymi celami.
Lepsze, bardziej optymalne pisanie aplikacji.
R4v3N
mea culpa :[

dzieki za info, wyprowadziliscie mnei z bledu :*


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