Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Problem z nieistniejącym indeksem tablicy i konfiguracją PHP
Forum PHP.pl > Forum > PHP
pawelstempak
Witam.

Mam problem który nie wiem jak rozwiązać. Mam stronę napisaną w PHP i świetnie chodziła do tej pory. Przenoszę ja na inny serwer ale tam wyskooczyło mi nagle masa błędów typu

Notice: Undefined index: kategoria in /var/www/vhosts/moja-domena/httpdocs/index.php on line 23

Zrozumiałem tyle iż chodzi o nie istniejące indeksy tablic np. gdy sprawdzam warunek

  1. <?php
  2. if ($_GET['kategoria']==1)
  3. ?>


i nie istnieje taki indeks w tablicy $_GET[] to wywala ten błąd.
Na poprzednich dwóch serwerach nie było problemu więc to kwestia konfiguracji PHP. Może mi ktoś poradzić co trzeba zrobić? Tylko proszę bez porad typu

  1. <?php
  2. if (isset($_GET['kategoria']))
  3. {
  4. if ($_GET['kategoria']==1) {
  5. ...
  6. }
  7. }
  8. ?>


Tak zadziała ale nie będę teraz poprawiał całego serwisu.

Proszę bardzo o pomoc w rozwiązaniu tego problemu.
kwiateusz
na szybko i malo eleganco to albo dajesz @ przed $_GET albo zmieniasz error_reporting zeby nie pokazywało notice
Kocurro
Na początku skryptu daj:

error_reporting(E_ALL ^ E_NOTICE);

Potem kliknij pomógł winksmiley.jpg

A serwis lepiej popraw bo to nieelegancko robić z błęgami. Ja zawsze daję tak:

if ( isset( $_GET['cos'] ) && ( $_GET['cos'] == 'ktos' ) )

pozdr.
pawelstempak
Radzicie mi wyłączyć raportowanie błędów. To jednak nie zmieni niczego, serwis działa wadliwie w obecnej formie. Ja prosiłem o pomoc w rozwiązaniu problemu a nie łataniu. Może faktycznie jest to trochę nieelegancko ale jest i tyle. Moje pytanie jest takie: "Czy ktoś wie co zmienić w konfiguracji PHP aby rozwiązać ten problem."
Kocurro
TEGO NIE ZMIENISZ exclamation.gif

Na poprzedniej konfiguracji masz właśnie wyłączone raportowanie błędów bo ta konstrukcja co robisz jest błędna !

Rozumiem, że możesz być początkującym jednak to nie zwalnia z myślenia oraz czytania manuala.

Na serwerach masz przeważnie domyślnie E_NOTICE wyłączone po to by newbies i wannabe, którzy ściągną jakiś syfiasty skrypt nie popłakali się i nie zrezygnowali z konta hostingowego gdy coś nie działa.

Przy okazji polecam skorzystanie z jakiegoś słownika i zrozumienie co znaczy "NOTICE" oraz czym się różni od "WARNING" i "ERROR".

pozdrawiam,
Łukasz
pawelstempak
Ok czyli piszesz ze wylączenie E_NOTICE spowoduje przywrócenie działania serwisu? Będę próbował.

BTW, wiem co znaczy NOTICE, ERROR i WARNING i jakie są znaczenia w raportowaniu błędów, tylko nie myślałem że NOTICE powoduje zatrzymanie się wykonywania całości kodu strony. Z drugiej strony może akurat tak coś napisałem. Jednak dziwniejsze jest to ze na poprzednim serwerze mam włączone raportowanie błędów łącznie z E_NOTICE, dlatego myślałem iż w konfiguracji PHP jest coś co ignoruje tego typu błędy.

W każdym razie dziękuje za pomoc.




Cytat(Kocurro @ 27.07.2008, 10:39:39 ) *
TEGO NIE ZMIENISZ exclamation.gif


Rozumiem, że możesz być początkującym jednak to nie zwalnia z myślenia oraz czytania manuala.


A gadki tego typu zachowaj dla siebie. Tego typu fora internetowe są chyba od tego aby pogłębiać swoją wiedzę i wymieniać się nią w normalny i kulturalny sposób, więc są takim samym źródłem wiedzy jak manual PHP, książka czy google. Przynajmniej takie mam wrażenie. Nie chcesz pomóc w ten sposób to w ogóle nie pomagaj i nie pisz posta.

Mam jakieś takie dziwne odczucia, że niektórzy użytkownicy tego forum to tylko czekają aby napisać któreś ze zdań:

"Poczytaj manuala"
"Poszukaj w googlach"
"Pomyśl!!!"

Proponuje poczytać Regulamin forum php.pl a szczególnie rozdział 2 i 3.
kwiateusz
Notice samo w sobie nie zakonczy dzialania skryptu, jedynie informuje o bledach malo krytycznych, jesli skrypt dziala nieprawidlowo to w innym miejscu
pawelstempak
I to jest pomocna informacja...

Dzieki wielkie...
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.