Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Notice: Undefined index: send
Forum PHP.pl > Forum > PHP
maniek2512
Witam, na wstępie chciałbym zaznaczyć iż dopiero się uczę więc nie wymagajcie ode mnie zbyt dużo:)

A więc tak, napisałem skrypt/kod który miałby dodawać użytkownika do statystyk. Dane pobierane są ze zmiennej, a następnie po kliknięciu przycisku dodaj zapisywane są do bazy danych, bądź nie jeśli któryś z warunków nie zostanie spełniony.
Niestety wyskakuje mi błąd (poza tym błędem wszystko jest tak jak powinno czyli kierowca dodaje się do bazy danych)
  1. Notice: Undefined index: send in /home/nfswinfo/public_html/nowa/add.php on line 5


Strona add.php :

  1. <?php
  2. require 'config.php'; // Plik konfiguracyjny i połączenie z bazą danych
  3.  
  4.  
  5. if ($_POST['send'] == 1) {
  6. // Zabezpieczenie danych z formularza przed kodem HTML i ewentualnymi atakami SQL Injection
  7. $nick = mysql_real_escape_string(htmlspecialchars($_POST['nick']));
  8. /**
  9.   * Sprawdź czy nick już istnieje w bazie danych
  10.   */
  11. $existsnick = mysql_fetch_array(mysql_query("SELECT COUNT(*) FROM drivers WHERE nick='$nick' LIMIT 1"));
  12.  
  13. $errors = ''; // Zmienna przechowująca listę błędów które wystąpiły
  14.  
  15. // Sprawdź, czy nie wystąpiły błędy
  16. if ($existsnick[0] >= 1) $errors .= '- Ten kierowca jest już zapisany w statystykach.<br />';
  17. /**
  18.   * Jeśli wystąpiły jakieś błędy, to je pokaż
  19.   */
  20. if ($errors != '') {
  21. echo '<p class="error">Wystąpił błąd:<br />'.$errors.'</p>';
  22. }
  23.  
  24. /**
  25.   * Jeśli nie ma żadnych błędów - kontynuuj rejestrację
  26.   */
  27. else {
  28.  
  29.  
  30. // Zapisz dane do bazy
  31. mysql_query("INSERT INTO drivers (nick) VALUES('$nick') ;") or die ('<p class="error">Wystąpił błąd w zapytaniu i nie udało się dodać kierowcy do statystyk.</p>');
  32.  
  33. echo '<p class="success">'.$nick.', został poprawnie dodany do statystyk.</p>';
  34. }
  35. }
  36. ?>
  37.  
  38. <form method="post" action="">
  39. <input type="hidden" name="nick" id="nick" value="<?php echo $nick; ?>" />
  40. <input type="hidden" name="send" value="1" />
  41. <input type="submit" value="Dodaj" />
  42. </form>


Mógłby mi ktoś pomóc przerobić lub samemu coś zmienić aby tego błędu nie było?
Z góry dziękuję
mortus
Zamiast $_POST['send'] == 1 w linii 5 powinno być:
  1. isset($_POST['send']) && $_POST['send'] == 1
maniek2512
Dzięki serdeczne, plusik leci:)
Sinevar
Poczytaj sobie o PDO http://www.php.net/manual/en/book.pdo.php, bo ten Twój SQL aż się prosi o SQL Injection wink.gif
greycoffey
Czemu teraz wszyscy traktują PDO jako idealne antidotum na SQL Injection?
Sinevar
Nie tyle antidotum, co zrobienie jakiegoś kroku w celu zapobieżenia potencjalnym włamom. Według mnie następnym krokiem, który wartałoby zrobić, jest douczenie się jakiegoś ORM, coś ala Doctrine/Propel. Osobiście polecam Doctrine2: http://docs.doctrine-project.org/projects/...test/index.html
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.