Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [PHP][MySQL] problem z "wypełnij wszystkie pola"
Darekxp
post
Post #1





Grupa: Zarejestrowani
Postów: 117
Pomógł: 0
Dołączył: 13.05.2007

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


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. (IMG:http://forum.php.pl/style_emoticons/default/sadsmiley02.gif) Pomóżcie (IMG:http://forum.php.pl/style_emoticons/default/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. ?>
Go to the top of the page
+Quote Post
Lion_87
post
Post #2





Grupa: Zarejestrowani
Postów: 850
Pomógł: 120
Dołączył: 15.02.2007
Skąd: Łódź

Ostrzeżenie: (10%)
X----


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. ?>
Go to the top of the page
+Quote Post
Darekxp
post
Post #3





Grupa: Zarejestrowani
Postów: 117
Pomógł: 0
Dołączył: 13.05.2007

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


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.
Go to the top of the page
+Quote Post
drzalek
post
Post #4





Grupa: Zarejestrowani
Postów: 170
Pomógł: 18
Dołączył: 6.03.2007

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


  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.

Ten post edytował drzalek 9.10.2008, 21:02:57
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 23.08.2025 - 15:14