Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP] Undefined index
Forum PHP.pl > Forum > Przedszkole
Levy_
Piszę blog w PHP i nie wiedząc czemu strona zaczęła mi wyrzucać błąd z niezidentyfikowanym indexem, oto on: Notice: Undefined index: id in C:\wamp\www\blog\miesiac.php on line 14. W sumie to na chwilę obecną nie wiem jak go naprawić ;/

cały kod:
  1. <?php
  2. include('gora.php');
  3.  
  4. //laczenie z bd
  5. $serwer = mysql_connect('localhost', 'root', '');
  6. if ($serwer === false) die('Blad polaczenia z baza danych: '
  7. $baza = mysql_select_db('www');
  8. if ($baza === false) die('Blad wybierania bazy danych: '
  9.  
  10.  
  11. mysql_query('SET CHARSET utf8');
  12. $wpis = (int) $_GET['id'];
  13. if ($wpis != 0) {
  14. //tekst zapytania SQL
  15. $zapytanie = 'SELECT * FROM blog WHERE id=' . $wpis . ' AND widocznosc="t" ORDER BY dodane DESC';
  16. //realizacja zapytania
  17. $rezultat = mysql_query($zapytanie);
  18. if ($rezultat === false) die('Blad realizacji zapytania: '
  19. while (($wiersz = mysql_fetch_assoc($rezultat))) {
  20. print('<h2>' . $wiersz['tytul'] . '</h2>' . "\r\n");
  21. print('<div class="dataautor">'
  22. . $wiersz['podpis'] . ', '
  23. . $wiersz['dodane'] . '</div>' . "\r\n");
  24. print('<div class="tresc">' . $wiersz['tresc']
  25. . '</div>' . "\r\n");
  26. print("<hr/>\r\n");
  27. }
  28.  
  29. //zwolnij pamiec wynikow zapytania i rozlacz sie z baza
  30. mysql_free_result($rezultat);
  31.  
  32. //wyuszenie dodania mc i roku do paska adresu
  33. if(!isset($_GET['miesiac']) && !isset($_GET['rok']))
  34. {
  35. $rok = date('Y');
  36. $miesiac = date('d');
  37. $location = "miesiac.php?rok=".$rok."&miesiac=05";
  38. header("Location: $location");
  39. }
  40.  
  41. //p.naw.
  42. function PanelNawigacyjny()
  43. {
  44. $rk = $_GET['rok'];
  45. $mc = $_GET['miesiac'];
  46. if (!isset($rk)) $rk = date('Y');
  47. if (!isset($mc)) $mc = date('m');
  48.  
  49. ?>
  50. <table>
  51. <tr>
  52. <td>
  53. <select onChange="Zmiana();" id="miesiac" name="miesiac">
  54. <option value="01">styczeń</option>
  55. <option value="02">luty</option>
  56. <option value="03">marzec</option>
  57. <option value="04">kwiecień</option>
  58. <option value="05">maj</option>
  59. <option value="06">czerwiec</option>
  60. <option value="07">lipiec</option>
  61. <option value="08">sierpień</option>
  62. <option value="09">wrzesień</option>
  63. <option value="10">październik</option>
  64. <option value="11">listopad</option>
  65. <option value="12">grudzień</option>
  66. </select>
  67. </td>
  68. <td>
  69. <select onChange="Zmiana();" id="rok" name="rok">
  70. <option value="2010">2010</option>
  71. <option value="2009">2009</option>
  72. </select>
  73. </td>
  74. </tr>
  75. </table>
  76. <script type="text/javascript"><!--
  77. var WyborMiesiaca = document.getElementById('miesiac');
  78. var WyborRoku = document.getElementById('rok');
  79. WyborMiesiaca.value = '<?php echo $mc; ?>';
  80. WyborRoku.value = '<?php echo $rk; ?>';
  81. function Zmiana()
  82. {
  83. window.location = '?miesiac=' + WyborMiesiaca.value + '&rok=' + WyborRoku.value;
  84. }
  85. //--></script>
  86. <?php
  87. $zapytanie = 'SELECT * FROM blog WHERE widocznosc="t" ' . 'AND dodane LIKE "'. $rk . '-' .$mc . '-%" ' . 'ORDER BY dodane DESC';
  88. $rezultat = mysql_query($zapytanie);
  89. if ($rezultat === false) die('Blad realizacji zapytania: '
  90. while (($wiersz = mysql_fetch_assoc($rezultat))) {
  91. print("<a href=\"?id=${wiersz['id']}&miesiac=$mc&" . "rok=$rk\" style=\"color: yellow;\">" . "${wiersz['tytul']}</a><br/>\r\n");
  92. }
  93. mysql_free_result($rezultat);
  94. }
  95. include ('dol.php');
  96. mysql_close($serwer);
  97. }
  98. ?>
marian84
zamien

  1. $wpis = (int) $_GET['id'];


na
  1. $wpis = (int) isset($_GET['id']);
eccocce
marian84, jesteś pewny? isset zwraca wartość typu boolean, a on chce mieć w $wpis wartość liczbową.

Ten błąd, a właściwie to ostrzeżenie, informuje, że odwołujesz się do nieistniejącego indeksu w tablicy $_GET: czyli jeśli odpalisz swój skrypt przez adres index.php?id=12, to ostrzeżenia nie zobaczysz.

Proponuję dodać coś w stylu:

  1. if(isset($_GET['id'])) $wpis=$_GET['id'];
  2. else $wpis="jakas wartosc, gdy w adresie nie ma id";


zamiast tej 14. linii.
marian84
Cytat
zwraca wartość typu boolean, a on chce mieć w $wpis wartość liczbową.


racja, racja ... pospieszylem się
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.