Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP]Błędy typu PHP Notice: Undefined index:
Forum PHP.pl > Forum > Przedszkole
adrianozo
Witam.
Kończę pisać stronę internetową. Mam wyłączone pokazywanie błędów, ale włączone wrzucanie ich do pliku na serwerze. Ściągnąłem sobie ten plik i wyrzuciło mi: 36 błędów treści:

Kod
[10-Dec-2009 13:35:05] PHP Notice:  Undefined index:  haslo in paneladmina.php on line 14
[10-Dec-2009 13:35:15] PHP Notice:  Undefined index:  id in kat.php on line 21
[10-Dec-2009 13:35:17] PHP Notice:  Undefined index:  id in medbooki.php on line 20
[10-Dec-2009 13:35:21] PHP Notice:  Undefined index:  login in paneladmina.php on line 19
[10-Dec-2009 13:35:21] PHP Notice:  Undefined index:  haslo in paneladmina.php on line 41
[10-Dec-2009 13:35:21] PHP Notice:  Undefined index:  login in paneladmina.php on line 41
[10-Dec-2009 13:35:23] PHP Notice:  Undefined index:  tresc in dodajnews.php on line 4
[10-Dec-2009 13:35:23] PHP Notice:  Undefined index:  tytul in dodajnews.php on line 5
[10-Dec-2009 13:35:23] PHP Notice:  Undefined index:  tresc in dodajnews.php on line 8
[10-Dec-2009 13:35:25] PHP Notice:  Undefined index:  id in edytujnews.php on line 6
[10-Dec-2009 13:35:26] PHP Notice:  Undefined index:  edycja in edytujnews.php on line 24
[10-Dec-2009 13:35:28] PHP Notice:  Undefined index:  id in usunnews.php on line 4
[10-Dec-2009 13:35:29] PHP Notice:  Undefined index:  info in dodajartykul.php on line 4
[10-Dec-2009 13:35:29] PHP Notice:  Undefined index:  kategoria in dodajartykul.php on line 5
[10-Dec-2009 13:35:29] PHP Notice:  Undefined index:  tytul in dodajartykul.php on line 6
[10-Dec-2009 13:35:29] PHP Notice:  Undefined index:  cena in dodajartykul.php on line 7
[10-Dec-2009 13:35:29] PHP Notice:  Undefined index:  plik in dodajartykul.php on line 8
[10-Dec-2009 13:35:29] PHP Notice:  Undefined index:  zdjecie in dodajartykul.php on line 9
[10-Dec-2009 13:35:29] PHP Notice:  Undefined index:  info in dodajartykul.php on line 12
[10-Dec-2009 13:35:31] PHP Notice:  Undefined index:  plik in edytujartykul.php on line 5
[10-Dec-2009 13:35:31] PHP Notice:  Undefined index:  zdjecie in edytujartykul.php on line 6
[10-Dec-2009 13:35:31] PHP Notice:  Undefined index:  id in edytujartykul.php on line 7
[10-Dec-2009 13:35:32] PHP Notice:  Undefined index:  plik in edytujartykul.php on line 5
[10-Dec-2009 13:35:32] PHP Notice:  Undefined index:  zdjecie in edytujartykul.php on line 6
[10-Dec-2009 13:35:32] PHP Notice:  Undefined index:  edycja in edytujartykul.php on line 25
[10-Dec-2009 13:35:34] PHP Notice:  Undefined index:  id in usunartykul.php on line 4
[10-Dec-2009 13:35:36] PHP Notice:  Undefined index:  tresc in edytujregulamin.php on line 4
[10-Dec-2009 13:35:36] PHP Notice:  Undefined index:  edit in edytujregulamin.php on line 7
[10-Dec-2009 13:35:36] PHP Notice:  Undefined index:  edit in edytujregulamin.php on line 12
[10-Dec-2009 13:35:38] PHP Notice:  Undefined index:  tresc in edytujonas.php on line 3
[10-Dec-2009 13:35:38] PHP Notice:  Undefined index:  edit in edytujonas.php on line 5
[10-Dec-2009 13:35:38] PHP Notice:  Undefined index:  edit in edytujonas.php on line 11
[10-Dec-2009 13:35:40] PHP Notice:  Undefined index:  tresc in edytujkontakt.php on line 4
[10-Dec-2009 13:35:40] PHP Notice:  Undefined index:  edit in edytujkontakt.php on line 6
[10-Dec-2009 13:35:40] PHP Notice:  Undefined index:  edit in edytujkontakt.php on line 11
[10-Dec-2009 13:35:49] PHP Notice:  Undefined index:  id in kat.php on line 21


Wiem, że to są błędy takie, że nie zdefiniowano indexu, ale nie wiem jak się ich pozbyć.

Próbowałem np.
  1. if (!empty($_GET['id']))
  2. {
  3. }
ale nie za bardzo działało tj. albo wyświetlało kolejny błąd, albo nie pokazywało nic... nawet zawartości.

Mógłbym prosić o pomoc?
Z góry dziękuje smile.gif

PS. Strona w większości oparta o $_GET
skowron-line
Wyłącz sobie raportowanie notice -ów error_reporting
Fantazyn
Spróbuj wpisać na początku pliku php:

error_reporting(E_ALL ^ E_NOTICE); (pokazuje wszystkie błedy prócz notice'ów).

A czy jest GET['id'] to lepiej (chyba) pisać

  1.  
  2. if(isset($_GET['id'])){
  3.  
  4. }
zordon
masz napisane konkretnie w ktorych liniach którego pliku masz błędy... masz źle zainicjowaną tablicę. błąd prawdopodobnie jest łatwy do usunięcia, najpewniej dodajesz do tablicy wartości po tym jak gdzieś wymagana jest już ich obecność
adrianozo
Cytat(skowron-line @ 10.12.2009, 14:50:07 ) *
Wyłącz sobie raportowanie notice -ów error_reporting


Ja nie chce ich wyłączyć tylko zlikwidować na zawsze smile.gif

Cytat(Fantazyn @ 10.12.2009, 14:55:40 ) *
A czy jest GET['id'] to lepiej (chyba) pisać

  1.  
  2. if(isset($_GET['id']))
  3. {
  4. }


Czyli zmienić
  1. if (!empty($_GET['id']))
  2. {
  3. }

na
  1. if(isset($_GET['id']))
  2. {
  3. }
?
phpion
Najlepiej połączyć oba te warunki tj.:
  1. if (isset($_GET['id']) && !empty($_GET['id'])) {
  2.  
  3. }

i nie ma prawa pluć się jakimkolwiek notice'm.
wookieb
Nie powinno się wyłączać błędów notice ponieważ w większych aplikacjach mogą być wskazówką do znalezienia wielu błędów. Trzeba to mieć na uwadze.
zordon
Cytat(phpion @ 10.12.2009, 15:13:26 ) *
Najlepiej połączyć oba te warunki tj.:
  1. if (isset($_GET['id']) && !empty($_GET['id'])) {
  2.  
  3. }

i nie ma prawa pluć się jakimkolwiek notice'm.


nie do końca, bo funkcje te nie robią tego samego. mi wystarcza samo empty(), jesli wiem, ze przysylana wartosc nie moze byc 0, null, '' itp. W przypadku, gdy $_GET['id'] moze byc 0 powyższy zapis jest błędny.

Poza tym nie wiem czemu wszyscy się uczepili tylko tego $_GET skoro adrianozo napisal jedynie, ze strona jest oparta na $_GET, co wcale nie oznacza, że to TA tablica generuje błędy(choć może).adrianozo, jeśli nie wiesz na czym polegają błędy a żadna z odpowiedzi ci nie pomogla to wstaw przykladowe linie kodu z tych listowanych plikow.
adrianozo
Zlikwidowałem 16 błędów jeszcze 20 biggrin.gif

Kod
[10-Dec-2009 19:03:01] PHP Notice:  Undefined index:  id in medbooki.php on line 20
[10-Dec-2009 19:03:13] PHP Notice:  Undefined index:  id in kat.php on line 21
[10-Dec-2009 19:03:26] PHP Notice:  Undefined index:  haslo in paneladmina.php on line 48
[10-Dec-2009 19:03:26] PHP Notice:  Undefined index:  login in paneladmina.php on line 48
[10-Dec-2009 19:03:29] PHP Notice:  Undefined index:  tresc in dodajnews.php on line 11
[10-Dec-2009 19:03:31] PHP Notice:  Undefined index:  id in edytujnews.php on line 6
[10-Dec-2009 19:03:32] PHP Notice:  Undefined index:  edycja in edytujnews.php on line 24
[10-Dec-2009 19:03:34] PHP Notice:  Undefined index:  id in usunnews.php on line 4
[10-Dec-2009 19:03:36] PHP Notice:  Undefined index:  info in dodajartykul.php on line 15
[10-Dec-2009 19:03:38] PHP Notice:  Undefined index:  plik in edytujartykul.php on line 5
[10-Dec-2009 19:03:38] PHP Notice:  Undefined index:  zdjecie in edytujartykul.php on line 6
[10-Dec-2009 19:03:38] PHP Notice:  Undefined index:  id in edytujartykul.php on line 7
[10-Dec-2009 19:03:40] PHP Notice:  Undefined index:  edycja in edytujartykul.php on line 25
[10-Dec-2009 19:03:42] PHP Notice:  Undefined index:  id in usunartykul.php on line 4
[10-Dec-2009 19:03:44] PHP Notice:  Undefined index:  edit in edytujregulamin.php on line 10
[10-Dec-2009 19:03:44] PHP Notice:  Undefined index:  edit in edytujregulamin.php on line 15
[10-Dec-2009 19:03:46] PHP Notice:  Undefined index:  edit in edytujonas.php on line 8
[10-Dec-2009 19:03:46] PHP Notice:  Undefined index:  edit in edytujonas.php on line 14
[10-Dec-2009 19:03:47] PHP Notice:  Undefined index:  edit in edytujkontakt.php on line 9
[10-Dec-2009 19:03:47] PHP Notice:  Undefined index:  edit in edytujkontakt.php on line 14
thek
To, że w przypadku 0 zapis z empty jest błędny jest wiadome. Dlatego do danych w zmiennych 0 jest wysyłane w przypadkach konkretnych i osobiście sam tak robię by się czegoś "pozbyć" winksmiley.jpg Jeśli ktoś ma zamiar kombinować z 0 jako możliwością sprawdza przesłany typ nie poprzez empty tylko sprawdzając typ zmiennej smile.gif Na takim poziomie jest już znaczna różnica pomiędzy 0, false i '', choć dla empty są one tym samym. Isset przepuści wszystkie. Sprawdzenie typu jednak rozróżni każdy z nich. Jak dla mnie po nazwach plików sądząc zrobił on zapewne w formularzach odwołania do zmiennych, które w momencie pisania jeszcze nie istnieją i są na zasadzie:
  1. <input name="jakis" value="<?php echo $id ?>" />

Takie coś podczas edycji istniejących danych zainicjuje się z bazy, ale jeśli jest to uruchamiane po raz pierwszy choćby linkiem "Napisz nowy artykuł", używając tych samych plików co do edycji istniejących (a tak jest najczęściej robione), to sypie mu do konsoli błędów Notice smile.gif Nie sprawdza on wcześniej bowiem czy ta zmienna istnieje. Ja w takim wypadku na starcie tworzę obiekt z wartościami domyślnymi lub zmienną inicjuję bądź przebudowuje do postaci mniej więcej o funkcjonalności:
  1. <input name="jakis" value="<?php echo ( isset( $id ) ) ? $id : 'tutaj defaultowe' ?>" />
adrianozo
  1. <?php
  2. include('include/db.php');
  3. date_default_timezone_set('Europe/Warsaw');
  4. if (isset($_POST['info']) && isset($_POST['kategoria']) && isset($_POST['tytul']) && isset($_POST['cena']) && isset($_POST['plik']) && isset($_POST['zdjecie']))
  5. {
  6. $info = mysql_real_escape_string($_POST['info']);
  7. $kategoria = mysql_real_escape_string($_POST['kategoria']);
  8. $tytul = mysql_real_escape_string($_POST['tytul']);
  9. $cena = (int)mysql_real_escape_string($_POST['cena']);
  10. $plik_nazwa = mysql_real_escape_string($_POST['plik']);
  11. $zdjecie_nazwa = mysql_real_escape_string($_POST['zdjecie']);
  12. $data = date('Y-m-d-G:i:s');
  13. }
  14. include('include/dane.php');
  15. if (!isset($_POST['info']) && empty($_POST['info']))
  16. {
  17. echo '<div style="text-align:center;"><form action="index.php?page=dodajartykul" enctype="multipart/form-data" method="post">Tytu&#x142;<br />
  18. <input type="hidden" name="MAX_FILE_SIZE" value="2097152">
  19. <input type="text" name="tytul" value="Tytu&#x142;" size="26" />
  20. <br />Tre&#x15B;&#x107;<br />
  21. <textarea name="info" cols="50" rows="10">Tre&#x15B;&#x107;</textarea>
  22. <br />Kategoria<br />
  23. <input type="text" name="kategoria" value="Kategoria" size="26" />
  24. <br />Cena<br />
  25. <input type="text" name="cena" value="Cena" size="26" />
  26. <br />Miniaturka<br />
  27. <input type="file" name="zdjecie" />
  28. <br />Plik<br />
  29. <input type="file" name="plik" />
  30. <br />
  31. <input type="submit" value="Dodaj" />
  32. <input type="reset" value="Wyczy&#x15B;&#x107;" />
  33. </form><br />
  34. <a style="text-decoration: none;" href="?page=paneladmina">Wr&#xF3;&#x107; do Panelu Administratora</a></div>';
  35. }
  36. else
  37. {
  38. $plik_tmp = $_FILES['plik']['tmp_name'];
  39. $plik_nazwa = $_FILES['plik']['name'];
  40. $plik_rozmiar = $_FILES['plik']['size'];
  41. $plik_type = $_FILES['plik']['type'];
  42. $zdjecie_tmp = $_FILES['zdjecie']['tmp_name'];
  43. $zdjecie_nazwa = $_FILES['zdjecie']['name'];
  44. $zdjecie_rozmiar = $_FILES['zdjecie']['size'];
  45. $zdjecie_type = $_FILES['zdjecie']['type'];
  46. $ext1 = substr( $plik_nazwa, strrpos($plik_nazwa, '.' ) +1 );
  47. $ext2 = substr( $zdjecie_nazwa, strrpos($zdjecie_nazwa, '.' ) +1 );
  48. if(is_uploaded_file($plik_tmp))
  49. {
  50. if (($ext1 == 'zip') || ($ext1 == 'ZIP') || ($ext1 == 'rar') || ($ext1 == 'RAR') || ($ext1 == 'txt') || ($ext1 == 'TXT'))
  51. {
  52. move_uploaded_file($plik_tmp, "upload/$plik_nazwa");
  53. if(is_uploaded_file($zdjecie_tmp))
  54. {
  55. if (($ext2 == 'jpg') || ($ext2 == 'JPG') || ($ext2 == 'jpeg') || ($ext2 == 'JPEG') || ($ext2 == 'png') || ($ext2 == 'PNG') || ($ext2 == 'gif') || ($ext2 == 'GIF'))
  56. {
  57. move_uploaded_file($zdjecie_tmp, "zdjecie/$zdjecie_nazwa");
  58. echo "Plik: <strong>$plik_nazwa</strong> o rozmiarze
  59. <strong>$plik_rozmiar bajt&#xF3;w</strong> zosta&#x142; przes&#x142;any na serwer!<br /><br />";
  60. echo "Zdjęcie: <strong>$zdjecie_nazwa</strong> o rozmiarze
  61. <strong>$zdjecie_rozmiar bajt&#xF3;w</strong> zosta&#x142;o przes&#x142;ane na serwer!";
  62. if (isset($_POST['info']) && isset($_POST['kategoria']) && isset($_POST['tytul']) && isset($_POST['cena']) && isset($_POST['plik']) && isset($_POST['zdjecie']))
  63. {
  64. $zapytanie = "INSERT INTO `artykuly` (`info`, `kategoria`, `tytul`, `cena`, `plik`, `zdjecie`, `data`) VALUES ('".$info."', '".$kategoria."', '".$tytul."', '".$cena."', 'upload/".$plik_nazwa."', 'zdjecie/".$zdjecie_nazwa."', '".$data."')";
  65. $idzapytania = mysql_query($zapytanie);
  66. }
  67. }
  68. }
  69. }
  70. }
  71. else
  72. {
  73. echo '<div style="text-align:center;">Zły format pliku!<br /><a style="text-decoration: none;" href="?page=dodajartykul">Wr&#xF3;&#x107;</a></div>';
  74. }
  75. if (isset($idzapytania))
  76. {
  77. if($idzapytania)
  78. {
  79. echo '<div style="text-align:center;">Dodano artyku&#x142;<br /><br /><a style="text-decoration: none;" href="?page=paneladmina">Wr&#xF3;&#x107; do Panelu Administratora</a></div>';
  80. }
  81. }
  82. }
  83. mysql_close($connect);
  84. ?>


Tak wygląda plik i nie dodaje rekordu.. :/
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.