Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> Problem z nieistniejącym indeksem tablicy i konfiguracją PHP
pawelstempak
post 26.07.2008, 22:56:07
Post #1





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

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


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.
Go to the top of the page
+Quote Post
kwiateusz
post 26.07.2008, 23:07:30
Post #2


Admin Techniczny


Grupa: Administratorzy
Postów: 2 071
Pomógł: 93
Dołączył: 5.07.2005
Skąd: Olsztyn




na szybko i malo eleganco to albo dajesz @ przed $_GET albo zmieniasz error_reporting zeby nie pokazywało notice
Go to the top of the page
+Quote Post
Kocurro
post 27.07.2008, 01:44:03
Post #3





Grupa: Zarejestrowani
Postów: 461
Pomógł: 32
Dołączył: 17.09.2003
Skąd: Łódź

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


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.
Go to the top of the page
+Quote Post
pawelstempak
post 27.07.2008, 08:55:11
Post #4





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

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


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."
Go to the top of the page
+Quote Post
Kocurro
post 27.07.2008, 09:39:39
Post #5





Grupa: Zarejestrowani
Postów: 461
Pomógł: 32
Dołączył: 17.09.2003
Skąd: Łódź

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


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
Go to the top of the page
+Quote Post
pawelstempak
post 27.07.2008, 10:09:06
Post #6





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

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


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.
Go to the top of the page
+Quote Post
kwiateusz
post 27.07.2008, 10:15:04
Post #7


Admin Techniczny


Grupa: Administratorzy
Postów: 2 071
Pomógł: 93
Dołączył: 5.07.2005
Skąd: Olsztyn




Notice samo w sobie nie zakonczy dzialania skryptu, jedynie informuje o bledach malo krytycznych, jesli skrypt dziala nieprawidlowo to w innym miejscu
Go to the top of the page
+Quote Post
pawelstempak
post 27.07.2008, 10:20:34
Post #8





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

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


I to jest pomocna informacja...

Dzieki wielkie...
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: 19.07.2025 - 15:04