Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [PHP][MySQL]Dodanie do bazy danych == undefined index
otlet
post 5.12.2014, 23:31:16
Post #1





Grupa: Zarejestrowani
Postów: 5
Pomógł: 0
Dołączył: 27.03.2014

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


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>
Go to the top of the page
+Quote Post
fate
post 5.12.2014, 23:56:09
Post #2





Grupa: Zarejestrowani
Postów: 824
Pomógł: 106
Dołączył: 14.03.2012
Skąd: Warszawa

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


  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

Ten post edytował fate 5.12.2014, 23:57:33


--------------------
Go to the top of the page
+Quote Post
otlet
post 6.12.2014, 01:55:35
Post #3





Grupa: Zarejestrowani
Postów: 5
Pomógł: 0
Dołączył: 27.03.2014

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


1. Niestety dalej sypie ostrzeżeniami + dalej nie działa sad.gif
2. nie zrozumiałem chyba smile.gif
Go to the top of the page
+Quote Post
fate
post 6.12.2014, 07:58:16
Post #4





Grupa: Zarejestrowani
Postów: 824
Pomógł: 106
Dołączył: 14.03.2012
Skąd: Warszawa

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


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

Ten post edytował fate 6.12.2014, 08:01:26


--------------------
Go to the top of the page
+Quote Post
otlet
post 6.12.2014, 12:26:57
Post #5





Grupa: Zarejestrowani
Postów: 5
Pomógł: 0
Dołączył: 27.03.2014

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


  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ę"
Go to the top of the page
+Quote Post
Turson
post 6.12.2014, 12:41:13
Post #6





Grupa: Zarejestrowani
Postów: 4 291
Pomógł: 829
Dołączył: 14.02.2009
Skąd: łódź

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


Olej ten komunikat z Netbeansa
Go to the top of the page
+Quote Post
otlet
post 6.12.2014, 15:38:53
Post #7





Grupa: Zarejestrowani
Postów: 5
Pomógł: 0
Dołączył: 27.03.2014

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


NO wiem, ale i tak skrypt kompletnie nie działa ;(
Go to the top of the page
+Quote Post
Turson
post 6.12.2014, 16:27:19
Post #8





Grupa: Zarejestrowani
Postów: 4 291
Pomógł: 829
Dołączył: 14.02.2009
Skąd: łódź

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


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')"
Go to the top of the page
+Quote Post
otlet
post 6.12.2014, 18:11:30
Post #9





Grupa: Zarejestrowani
Postów: 5
Pomógł: 0
Dołączył: 27.03.2014

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


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
Go to the top of the page
+Quote Post
fate
post 8.12.2014, 09:44:55
Post #10





Grupa: Zarejestrowani
Postów: 824
Pomógł: 106
Dołączył: 14.03.2012
Skąd: Warszawa

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


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


--------------------
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: 13.06.2025 - 09:15