Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP][MySQL] problem z "wypełnij wszystkie pola"
Forum PHP.pl > Forum > Przedszkole
Darekxp
Mam problem z rejestracją. Niby wszystko dodaje do bazy jak wpisze dane, ale jak zrobić instrukcję warunkową sprawdzającą czy wszystkie pola zostały uzupełnione? Kombinowałem ale zawsze robie gdzieś błąd bo zawsze jak kombinuje z if elseif to po wejściu w link register.php odrazu dodaje pusty wpis do bazy. Jeżeli nie wpisze nic w żadne pole i klikne rejestruj też 'zarejestruje" jako puste pola w bazie. sadsmiley02.gif Pomóżcie biggrin.gif


  1. <?php
  2.  
  3.  
  4. <form action=\"?link=register.php\" method=post>
  5. Imię:         <input class=login type=text name=imie></input><br>
  6. Nazwisko:     <input class=login type=text name=nazwisko></input><br>
  7. Klasa:         <input class=login type=text name=klasa></input><br>
  8. Login:         <input class=login type=text name=login></input><br>
  9. Hasło:         <input class=login type=password name=pass></input><br>
  10. E-mail:     <input class=login type=text name=email></input><br>
  11. O sobie:     <textarea class=login type=text name=osobie></textarea><br>
  12. <input class=submit type=submit value= Rejestruj ></input>
  13. </form>
  14. ";
  15.  
  16. //niby powinno to sprawdzać?
  17. if( $_GET['link']=="register.php"  && isset($_POST['imie']) && isset($_POST['nazwisko']) && isset($_POST['login']) && isset($_POST['pass']) && isset($_POST['email']) && isset($_POST['klasa']) && isset($_POST['osobie']) )
  18. {
  19.  
  20.  
  21. $imie = $_POST['imie'];
  22. $nazwisko = $_POST['nazwisko'];
  23. $login = $_POST['login'];
  24. $pass = md5($_POST['pass']);
  25. $klasa = $_POST['klasa'];
  26. $email = $_POST['email'];
  27. $osobie = $_POST['osobie'];
  28. $ip = $_SERVER['REMOTE_ADDR'];
  29.  
  30. $db = mysql_connect( "", "", "" ); mysql_query("SET NAMES 'latin2'");
  31. $query = "SELECT `password` FROM `uczen` WHERE `login`='$login'";
  32. $query = mysql_query( $query );
  33. $haslo = mysql_fetch_row( $query );
  34.  
  35.  
  36. if( isset($haslo[0]) ) { echo"<br><span style=\"color:red\">Taki login już istnieje! Podaj inny login!</span>"; }
  37. else
  38. {
  39.  
  40.  
  41.    $query = "INSERT INTO `uczen` (`id`, `imie`, `nazwisko`, `login`, `password`, `email`, `klasa`, `osobie`, `ip`) VALUES ('', '$imie','$nazwisko','$login', '$pass','$email','$klasa','$osobie','$ip')";
  42.    if( $log = mysql_query($query) ){ echo "<center><span style=\"color:green\"><br><br><br>Zostałeś zarejestrowany! <img src=http://strona/img/ok.png ></span></center>"; }
  43.    else{ echo"<center><span style=\"color:red\">Wystąpił nieoczekiwany Błąd! Spróbuj poźniej!<BR></span></center>"; }
  44. }
  45.  
  46. mysql_close( $db );
  47. }
  48.  
  49. ?>
Lion_87
moze tak

  1. <?php
  2. if($_GET['link']=="register.php"  && $_POST['imie'] != "" && $_POST['nazwisko'] != "" && $_POST['login'] != "" && $_POST['pass'] != "" && $_POST['email'] && $_POST['klasa'] != "" && $_POST['osobie'] != "" )
  3. ?>
Darekxp
niestety nie działa! nadal po kliknięciu rejestruj(bez wpisywania żadnych danych) dodaje puste wpisy w bazie i pojawia się ze rejestracja zakonczona pomyślnie.
drzalek
  1. <?php
  2. //to co wyżej zostaje poza sprawdzeniem tego warunku czy pola są wypełnione
  3.  
  4. if( isset($haslo[0]) ) { echo"<br><span style=\"color:red\">Taki login już istnieje! Podaj inny login!</span>"; }
  5.  
  6. elseif ($imie=='' || $nazwisko=='' || $login=='' || $pass=='' || $klasa=='' || $email=='' || $osobie=='' || $ip=='')
  7. {
  8. echo '<p>Wszystkie pola muszą być wypełnione</p>';
  9. }
  10. else
  11. {
  12.   $query = "INSERT INTO `uczen` (`imie`, `nazwisko`, `login`, `password`, `email`, `klasa`, `osobie`, `ip`) VALUES ('".$imie."','".$nazwisko."','".$login."', '".$pass."','".$email."','".$klasa."','".$osobie."','".$ip."')";
  13.   if( $log = mysql_query($query) ){ echo "<center><span style=\"color:green\"><br><br><br>Zostałeś zarejestrowany! <img src=http://strona/img/ok.png ></span></center>"; }
  14.   else{ echo"<center><span style=\"color:red\">Wystąpił nieoczekiwany Błąd! Spróbuj poźniej!<BR></span></center>"; }
  15. }
  16.  
  17. mysql_close( $db );
  18.  
  19. ?>


Trochę zmodyfikowałem.
Po piewsze sprawdzasz czy jakieś pole nie jest puste, jeśli jest to dajesz komunikat, że tak być nie może, jeśli nie to idziesz dalej.
Po drugie moim zdaniem w zapytaniu miałeś błąd, chodzi o id, które zapewne jest u Ciebie auto_increment, jeśli tak nie podajesz go w ogóle w zapytaniu.
Po trzecie zmienne w zapytaniu powinny być zapisane w takim formacie ".$zmienna." inaczej chyba źle jest to inerpretowane.
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.