Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP][MySQL]Dodanie do bazy danych == undefined index
Forum PHP.pl > Forum > Przedszkole
otlet
Witam, otóż dopiero zaczynam w PHP a niestety mam problem z błędem Undefinex index przy każdej zmiennej poza $date

  1. ?php
  2. $author = $_POST['author'];
  3. $title = $_POST['title'];
  4. $description = $_POST['description'];
  5. $text = $_POST['text'];
  6. $date = \date("YYYY-MM-DD");
  7.  
  8. if($author and $title and $description and $text) {
  9.  
  10. $connection = @mysql_connect($sql_host, $sql_user, $sql_pass)
  11. or die('Brak połączenia z serwerem MySQL');
  12. $db = mysql_select_db($sql_db, $connection)
  13. or die('Nie mogę połączyć się z bazą danych');
  14.  
  15. $ins = \mysql_query("INSERT INTO `posts` (`title`, `author`, `description`, `text`, `date`) VALUES ($title, $author, $description, $text, $date)");
  16.  
  17. if ($ins) {echo "Rekord został dodany poprawnie";}
  18. else {echo "Błąd nie udało się dodać nowego rekordu";}
  19.  
  20. mysql_close($connection);
  21. }
  22. require 'inc/footer.php';
  23. ?>


Zaś form wygląda tak:
  1. <form action="admin.php" method="post">
  2. <table class="table">
  3. <tr>
  4. <td>Nick:</td>
  5. <td><input type="text" name="author" /></td>
  6. </tr>
  7. <tr>
  8. <td>Tytuł</td>
  9. <td><input type="text" name="title" /></td>
  10. </tr>
  11. <tr>
  12. <td>Wstęp</td>
  13. <td><input type="text" name="description" /></td>
  14. </tr>
  15. <tr>
  16. <td>Tekst</td>
  17. <td><textarea name="text" /></textarea></td>
  18. </tr>
  19. </table>
  20. <input type="submit" value="dodaj" />
  21. </form>
fate
  1. if ( isset($_POST))
  2. {
  3. $author = $_POST['author'];
  4. $title = $_POST['title'];
  5. $description = $_POST['description'];
  6. $text = $_POST['text'];
  7. }


1. to nie sa bledy a jedynie warningi
2. nie rob tak ala register globals
otlet
1. Niestety dalej sypie ostrzeżeniami + dalej nie działa sad.gif
2. nie zrozumiałem chyba smile.gif
fate
To ze cos nie dziala to inna bajka a niw wina NOTICEów
  1. if (isset($_POST['author'])){$author = $_POST['author'];}

i tak 4x


  1. if(!empty($_POST)){
  2. $author = $_POST['author'];
  3. $title = $_POST['title'];
  4. $description = $_POST['description'];
  5. $text = $_POST['text'];
  6. }


najlepiej
  1. if ( isset($_POST['dodaj']))
  2. {
  3. $author = $_POST['author'];
  4. $title = $_POST['title'];
  5. $description = $_POST['description'];
  6. $text = $_POST['text'];
  7. }

Daj inne nazwy np $autor,$tytul,$opis,$tekst
http://stackoverflow.com/questions/3593210...-globals-in-php
http://stackoverflow.com/questions/1417373...-globals-so-bad
http://php.net/manual/en/security.globals.php
otlet
  1. <form action="admin.php" method="post">
  2. <table class="table">
  3. <tr>
  4. <td>Nick:</td>
  5. <td><input type="text" name="author" /></td>
  6. </tr>
  7. <tr>
  8. <td>Tytuł</td>
  9. <td><input type="text" name="title" /></td>
  10. </tr>
  11. <tr>
  12. <td>Wstęp</td>
  13. <td><input type="text" name="description" /></td>
  14. </tr>
  15. <tr>
  16. <td>Tekst</td>
  17. <td><input type="text" name="text" /></textarea></td>
  18. </tr>
  19. </table>
  20. <input type="submit" value="dodaj" />
  21. </form>
  22.  
  23. <?php
  24. if ( isset($_POST['dodaj']))
  25. {
  26. $autor = $_POST['author'];
  27. $tytul = $_POST['title'];
  28. $opis = $_POST['description'];
  29. $tekst = $_POST['text'];
  30. $data = \date("YYYY-MM-DD");
  31.  
  32. if($autor and $tytul and $opis and $tekst) {
  33.  
  34. $connection = @mysql_connect($sql_host, $sql_user, $sql_pass)
  35. or die('Brak połączenia z serwerem MySQL');
  36. $db = mysql_select_db($sql_db, $connection)
  37. or die('Nie mogę połączyć się z bazą danych');
  38.  
  39. $ins = \mysql_query("INSERT INTO `posts` (`title`, `author`, `description`, `text`, `date`) VALUES ($title, $author, $description, $text, $date)");
  40.  
  41. if ($ins) {echo "Rekord został dodany poprawnie";}
  42. else {echo "Błąd nie udało się dodać nowego rekordu";}
  43.  
  44. mysql_close($connection);
  45. }
  46. }
  47. ?>



Piszę w NetBeans i przy post pokazuje mi



Niestety jest to zadanie na lekcję, a moja nauczycielka nie potrafi nas nauczyć, jedynie dać zadanka typu przepisz z kartki i sprawdź, czy działa... Sama nie potrafiła znaleźć błędu na swoich własnych kartkach, więc wybacz za moją "głupotę"
Turson
Olej ten komunikat z Netbeansa
otlet
NO wiem, ale i tak skrypt kompletnie nie działa ;(
Turson
nie
"INSERT INTO `posts` (`title`, `author`, `description`, `text`, `date`) VALUES ($title, $author, $description, $text, $date)"
a
"INSERT INTO `posts` (`title`, `author`, `description`, `text`, `date`) VALUES ('$title', '$author', '$description', '$text', '$date')"
otlet
I tak nie działa smile.gif

Jest problem przy $_POST, bo jak rozdzieliłem plik na dwa osobne to i tak nie działa. Zerowa reakcja sad.gif
fate
Jak poszedles za moja rada to tu zmienne inaczej nazywaja juz przy pakowaniu do sql:
VALUES ($title, $author, $description, $text, $date)
$autor,$tytul,$opis,$tekst
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.