Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [php] Nieznana zmienna
mr_aaa
post
Post #1





Grupa: Zarejestrowani
Postów: 13
Pomógł: 0
Dołączył: 22.09.2009

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


Witam. Uczę się PHP z książki PHP i MySQL - 8 komponentów dla kreatywnych webmasterów, jednak w książce (w kodach) jest mnóstwo błędów. Właśnie mam kolejny, jednak nie wiem jak się z nim uporać:

Notice: Undefined index: SESS_LOGGEDIN in C:\wamp\www\koszyk_zakupow\funkcje.php on line 34

  1. function showcart()
  2. {
  3. if($_SESSION['SESS_ORDERNUM'])
  4. {
  5. if($_SESSION['SESS_LOGGEDIN'])
  6. {


Chodzi tu o tą funkcję a linijka 34 to ta:
  1. if($_SESSION['SESS_LOGGEDIN'])

Próbowałem wywołać to na ekranie komendą
  1. echo '<pre>'; print_r($_SESSION); echo '</pre>';
i wyświetla mi się
  1. (
  2. [SESS_ORDERNUM] => 5
  3. )

Wynika z tego tak jakby nie był zalogowany użytkownik - i fakt nie jest, ale czemu to się wyświetla (przy zalogowanym się nie wyświetla to) a nie wykona się po prostu else?

Proszę o poradę.
Go to the top of the page
+Quote Post
sadistic_son
post
Post #2





Grupa: Zarejestrowani
Postów: 1 495
Pomógł: 245
Dołączył: 1.07.2009
Skąd: Bydgoszcz

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


ostrzeżenie pojawia się właśnie dlatego że nie jest zalogowany. Spróbuj użyć isset, czyli:
  1. function showcart()
  2. {
  3. if(isset($_SESSION['SESS_ORDERNUM']))
  4. {
  5. if(isset($_SESSION['SESS_LOGGEDIN']))
  6. {

A TUTAJ masz wyjaśnienie dlaczego tak się dzieje.

Ten post edytował sadistic_son 22.09.2009, 23:39:17
Go to the top of the page
+Quote Post
cojack
post
Post #3





Grupa: Zarejestrowani
Postów: 898
Pomógł: 80
Dołączył: 31.05.2008

Ostrzeżenie: (20%)
X----


A kto się NOTICE przejmuje?

  1. error_reporting('E_ALL ^ E_NOTICE');


Wymyślili że nie trzeba definiować zmiennych, a teraz będą mi błędami sadzić że nie zdefiniowana? A to burżuje. To może zacznie się era deklarowania, o zgrozo.

2 kroki w przód, 3 do tyłu.

Ten post edytował cojack 23.09.2009, 00:34:11
Go to the top of the page
+Quote Post
Berg
post
Post #4





Grupa: Zarejestrowani
Postów: 180
Pomógł: 37
Dołączył: 1.05.2008
Skąd: Białystok

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


Cytat(cojack @ 23.09.2009, 01:32:35 ) *
Wymyślili że nie trzeba definiować zmiennych, a teraz będą mi błędami sadzić że nie zdefiniowana? A to burżuje. To może zacznie się era deklarowania, o zgrozo.

Notice powinien przejmować się przede wszystkim programista o ile zależy mu oczywiście na solidnym kodzie. To nie jest dobry nawyk aby na dzień dobry w etapie produkcyjnym wyłączać raportowanie błędów. Jeśli się takich podstawowych błędów (bo wywołanie niezadeklarowanej zmiennej to jest błąd) nie wyłapie na starcie to potem może to doprowadzić do niestabilności aplikacji bądź luk bezpieczeństwa. Notice się wyłącza dopiero przy zakończeniu prac nad projektem aby w razie czego użytkownik nie zobaczył błędów php wyplutych do html'a.
Go to the top of the page
+Quote Post

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

 



RSS Aktualny czas: 23.08.2025 - 18:43