Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [php] Nieznana zmienna
Forum PHP.pl > Forum > Przedszkole
mr_aaa
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ę.
sadistic_son
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.
cojack
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.
Berg
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.
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.