Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> Sesje i mały(?) problem
-Craven-
post 10.01.2006, 03:15:58
Post #1





Goście







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).
Go to the top of the page
+Quote Post
R4v3N
post 10.01.2006, 08:23:51
Post #2





Grupa: Zarejestrowani
Postów: 40
Pomógł: 0
Dołączył: 7.05.2004
Skąd: Pultusk

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


  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
Go to the top of the page
+Quote Post
nospor
post 10.01.2006, 08:31:27
Post #3





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




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


--------------------

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

Go to the top of the page
+Quote Post
R4v3N
post 10.01.2006, 08:35:47
Post #4





Grupa: Zarejestrowani
Postów: 40
Pomógł: 0
Dołączył: 7.05.2004
Skąd: Pultusk

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


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
Go to the top of the page
+Quote Post
nospor
post 10.01.2006, 08:41:54
Post #5





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




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


--------------------

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

Go to the top of the page
+Quote Post
mike
post 10.01.2006, 08:51:04
Post #6





Grupa: Przyjaciele php.pl
Postów: 7 494
Pomógł: 302
Dołączył: 31.03.2004

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


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.
Go to the top of the page
+Quote Post
R4v3N
post 10.01.2006, 09:13:28
Post #7





Grupa: Zarejestrowani
Postów: 40
Pomógł: 0
Dołączył: 7.05.2004
Skąd: Pultusk

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


mea culpa :[

dzieki za info, wyprowadziliscie mnei z bledu :*


pzdr.
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: 8.07.2025 - 21:46