Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Problem z notice: undefined variable
Forum PHP.pl > Forum > Przedszkole
xarkez
Witam mam problem z wyskakującymi błędami notice: undefined variable

Czy moglby ktoś przejrzeć ten kod
  1. <?php
  2.  
  3. include("../db_data.php");
  4. if($_SERVER['REQUEST_METHOD'] == 'POST')
  5. $nazwa_tabeli=$_POST["nazwa_tabeli"];
  6. $nazwapotrawy=$_POST['nazwapotrawy'];
  7. $skladniki=$_POST['skladniki'];
  8. $cenam=$_POST['cenam'];
  9. $cenad=$_POST['cenad'];
  10. {
  11. $query = mysql_query("insert into $nazwa_tabeli values('',$nazwapotrawy, $skladniki, $cenam, $cenad)");
  12. echo '<br><input type="text" value="Pomyślnie dodałem post !" class="dobre-dane"><span class="dobre-dane_txt"></span></input><br><br>';
  13.  
  14. echo'<form action="odbierz_dane.php" method="post">
  15. <select name="nazwa_tabeli">
  16. <option value="emenu">pierwsza </option>
  17. <option value="pizza">druga</option>
  18. </select>
  19. <table class="edytor" border="0" align="center" cellpadding="1" cellspacing="1">
  20. <tbody>
  21. <tr align="center">
  22. <td width="25%" class="">Nazwa Potrawy:</td>
  23. <td><input class="test" type="text" name="nazwapotrawy"></td>
  24. </tr>
  25. <tr align="center">
  26. <td width="25%" class="">Składniki:</td>
  27. <td><input class="test" type="text" name="skladniki"></td>
  28. </tr>
  29. <tr align="center">
  30. <td width="25%" class="">Cena Mała:</td>
  31. <td><input class="test" type="text" name="cenam"></td>
  32. </tr>
  33. <tr align="center">
  34. <td width="25%" class="">Cena Duża:</td>
  35. <td><input class="test" type="text" name="cenad"></td>
  36. </tr><br>
  37. </tbody>
  38. </table>
  39. <br>
  40. <center><input id="przyciski" type="submit" value="DODAJ POST"></center></br>
  41.  
  42. </form>';
  43. }
  44. ?>


Prosze o wskazanie błędu lub poprawienie go . Z góry dziękuje
herbhouse666
Nie przejmuj się zbyt mocno tymi powiadomieniami jak nie masz powodu. Dodaj to do index:
Kod
error_reporting(E_ERROR | E_WARNING | E_PARSE);
MESSIAH :)
Wystarczy uzyc funkcji isset i po problemie.
KsaR
Cytat(herbhouse666 @ 24.07.2015, 18:21:08 ) *
Nie przejmuj się zbyt mocno tymi powiadomieniami jak nie masz powodu. Dodaj to do index:
Kod
error_reporting(E_ERROR | E_WARNING | E_PARSE);

Ty trollujesz czy tak na poważnie?
Błędy powinno się kasować (naprawiać) a nie wyciszać bo błąd wyskoczył, nie pisz takich rad nawet lepiej bo to najgorsze praktyki.

xarkez, tak jak pisal MESSIAH : ),
Powinienes uzywac isset.

isset sprawdza czy indeks/zmienna istnieje i nie jest null

  1. # to:
  2.  
  3. $nazwa_tabeli=$_POST["nazwa_tabeli"];
  4. $nazwapotrawy=$_POST['nazwapotrawy'];
  5. $skladniki=$_POST['skladniki'];
  6. $cenam=$_POST['cenam'];
  7. $cenad=$_POST['cenad'];
  8.  
  9. # zrób tak:
  10. $nazwa_tabeli=isset($_POST['nazwa_tabeli'])?$_POST['nazwa_tabeli']:'';
  11. $nazwapotrawy=isset($_POST['nazwapotrawy'])?$_POST['nazwapotrawy']:'';
  12. $skladniki=isset($_POST['skladniki'])?$_POST['skladniki']:'';
  13. $cenam=isset($_POST['cenam'])?$_POST['cenam']:'';
  14. $cenad=isset($_POST['cenad'])?$_POST['cenad']:'';
  15. // czyli jesli istnieje indeks (zostal wyslany) to przypisze jego wartosc, jesli nie to bedzie puste.
  16. # mozesz takze zrobic warunek if, sprawdzajacy czy isset(1,2,3,...) tam gdzie 1,2,.. Itp dodajesz po przecinku zmienne do sprawdzenia.


Ps. Poczytaj o SQL Injection, PDO lub mysqli oraz instrukcjach preparowanych.
blahy
W pytaniu jest mowa o "notice: undefined variable ".
Odwolywanie sie do nieistniejacego elementu w tablicy daje "PHP Notice: Undefined offset: 1 in php shell code on line 1".
Zawsze jesli widzimy tresc notice to widzimy tez w ktorym pliku i linii wystapil. Nie jest wtedy problemem zlokalizowac blad.
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.