Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [MySQL][PHP]Błąd przy rejestracji
Forum PHP.pl > Forum > Przedszkole
milw0rm
Cześć, przejdę od razu do sedna w swoim serwisie mam skrypt rejestracja.php który to na początku miał cztery pola:
  1. $login = trim($_POST['login']);
  2. $email = trim($_POST['email']);
  3. $pass_md5 = md5($_POST['haslo']);
  4. $pass = $_POST['haslo'];

Oczywiście na początku przy tych czterech polach wszystko ładnie elegancko działało.
Kiedy dodałem pola swoje mysql zwraca mi błąd zaraz pokaże jaki poniżej przedstawię plik rejestracja.php z dodaną linią do sprawdzania błędów:
  1. <?
  2. ini_set('display_errors','1');
  3. //inkludujemy plik z hasłami
  4.  
  5. include("conf.php");
  6.  
  7. //Laczenie z baza
  8. mysql_connect ( $dbhost, $dbuser, $dbpass)or die("Nie można się połączyć z bazą: ".mysql_error());
  9. ?>
  10. <html>
  11. <head>
  12. <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-2" />
  13. <title>Rejestracja</title>
  14. <script type="text/javascript">
  15. <!-- //
  16. function regulamin()
  17. {
  18. if(document.getElementById('reg').checked == true )
  19. {
  20. document.getElementById('dalej').disabled=false;
  21. }
  22. else
  23. {
  24. document.getElementById('dalej').disabled=true;
  25. }
  26. }
  27. // -->
  28. </script>
  29.  
  30. </head>
  31. <form method="post" action="<? echo $PHP_SELF;?>" METHOD=POST enctype="multipart/form-data">
  32. <center>
  33. <center><b>Login:<b><br />
  34. <input type="text" name="login" style="font-size: 10pt; font-family: Tahoma; font-weight: bold" /><br />
  35. <b>Email:<b><br />
  36. <input type="text" name="email" style="font-size: 10pt; font-family: Tahoma; font-weight: bold" /><br />
  37. <b>Hasło:</b><br />
  38. <input type="password" name="haslo" style="font-size: 10pt; font-family: Tahoma; font-weight: bold" /><br />
  39. <b>Adres:<b><br />
  40. <input type="text" name="adres" style="font-size: 10pt; font-family: Tahoma; font-weight: bold" /><br />
  41. <b>Miasto:<b><br />
  42. <input type="text" name="miasto" style="font-size: 10pt; font-family: Tahoma; font-weight: bold" /><br />
  43.  
  44. <b>Owiadczam iż zaakceptowałem regulamin</b>
  45. <input type="checkbox" id="reg" onclick="regulamin()" /><br />
  46. <input type="submit" name="submit" value="Rejestracja" id="dalej" disabled="disabled" style="font-size: 10pt; font-family: Tahoma; font-weight: bold" /></center>
  47.  
  48.  
  49. </form>
  50. <?
  51. //Jak wiadomo dobrze użyć funkcji trim aby usunąć zbędne znaki
  52. $login = trim($_POST['login']);
  53. $email = trim($_POST['email']);
  54. $pass_md5 = md5($_POST['haslo']);
  55. $pass = $_POST['haslo'];
  56. $adres = trim($_POST['adres']);
  57. $miasto = trim($_POST['miasto']);
  58. if($_POST['submit']) {
  59. $checkuser = mysql_query("SELECT login FROM users WHERE login='$login'");
  60. $username_exist = mysql_num_rows($checkuser);
  61.  
  62. //Jezeli zarejestrowanych takich nazw jest wiecej niz 0
  63. if($username_exist > 0){
  64. echo '
  65. <h2><center><b>Ta nazwa jest już zajęta wybierz inn?</b></center></h2>
  66. ';
  67. unset($login);
  68. exit();
  69. }
  70.  
  71. //Wysylamy zapytanie z logowaniem
  72. $zapytanie = "INSERT INTO `users` (`id`, `login`, `email`, `haslo`, `adres`, `miasto`) VALUES (NULL, '$login', '$email', '$pass_md5', '$adres', '$miasto')";
  73.  
  74. if(!$idzapytania)
  75. {
  76. echo 'blad!' . mysql_error();
  77. }
  78. else
  79. {
  80. echo '
  81. <h2><center><b>Poprawnie się zarejestrowałes, <a href="logowanie.php">możesz się zalogować</a></b></center></h2>
  82. ';
  83. }}
  84. ?>


Żeby było łatwiej tak wygląda zapytanie;
  1. $zapytanie = "INSERT INTO `users` (`id`, `login`, `email`, `haslo`, `adres`, `miasto`) VALUES (NULL, '$login', '$email', '$pass_md5', '$adres', '$miasto')";


Błąd Mysql:
  1. Notice: Undefined index: login in /home/terrory/public_html/Skrypty/Wirtualny/rejestracja.php on line 56
  2.  
  3. Notice: Undefined index: email in /home/terrory/public_html/Skrypty/Wirtualny/rejestracja.php on line 57
  4.  
  5. Notice: Undefined index: haslo in /home/terrory/public_html/Skrypty/Wirtualny/rejestracja.php on line 58
  6.  
  7. Notice: Undefined index: haslo in /home/terrory/public_html/Skrypty/Wirtualny/rejestracja.php on line 59
  8.  
  9. Notice: Undefined index: adres in /home/terrory/public_html/Skrypty/Wirtualny/rejestracja.php on line 60
  10.  
  11. Notice: Undefined index: miasto in /home/terrory/public_html/Skrypty/Wirtualny/rejestracja.php on line 61
  12.  
  13. Notice: Undefined index: submit in /home/terrory/public_html/Skrypty/Wirtualny/rejestracja.php on line 62
Lars_18
To nie są błędy MySQL, tylko notice. Używasz zmiennych, do których nie została wcześniej przypisana żadna wartość.
Przenieś linijki 56-61 do IFa, którego masz w linijce 62.
milw0rm
Zrobiłem tak:
  1. <?
  2. if($_POST['submit']) {
  3. //Jak wiadomo dobrze użyć funkcji trim aby usunąć zbędne znaki
  4. $login = trim($_POST['login']);
  5. $email = trim($_POST['email']);
  6. $pass_md5 = md5($_POST['haslo']);
  7. $pass = $_POST['haslo'];
  8. $adres = trim($_POST['adres']);
  9. $miasto = trim($_POST['miasto']);
  10. $checkuser = mysql_query("SELECT login FROM users WHERE login='$login'");
  11. $username_exist = mysql_num_rows($checkuser);
  12.  
  13.  
  14. //Jezeli zarejestrowanych takich nazw jest wiecej niz 0
  15. if($username_exist > 0){
  16. echo '
  17. <h2><center><b>Ta nazwa jest już zajęta wybierz inn?</b></center></h2>
  18. ';
  19. unset($login);
  20. exit();
  21. }
  22.  
  23. //Wysylamy zapytanie z logowaniem
  24. $zapytanie = "INSERT INTO `users` (`id`, `login`, `email`, `haslo`, `adres`, `miasto`) VALUES (NULL, '$login', '$email', '$pass_md5', '$adres', '$miasto')";
  25.  
  26. if(!$idzapytania)
  27. {
  28. echo 'blad!' . mysql_error();
  29. }
  30. else
  31. {
  32. echo '
  33. <h2><center><b>Poprawnie się zarejestrowałes, <a href="logowanie.php">możesz się zalogować</a></b></center></h2>
  34. ';
  35. }}
  36. ?>


i

  1. Notice: Undefined index: submit in /home/terrory/public_html/Skrypty/Wirtualny/rejestracja.php on line 55


Niby teraz nie jest z definiowany submit .... ale w formularzu przecież jest to mam go kurde dodać do zapytania ...?
zend
To zastąp tym
  1. if(count($_POST)){}
  2. //lub wewntualnie tym
  3. if(isset($_POST['cos'])) {}
  4.  
  5. //poza tym
  6. echo '<pre>';
  7. print_r($_POST);
  8. echo '</pre>';
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.