Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [HTML][PHP]rejestracja
Forum PHP.pl > Forum > Przedszkole
Sob0l3k
  1. <html lang="pl">
  2. <HEAD>
  3. <http-equiv="Content-Type" Content="text/html; charset=UTF-8" />
  4. <meta name="author" Content="Kamil" />
  5. <title>Rejestracja w Sklepie</title>
  6. <link rel="stylesshet" type="text/css" href="style/style.css" />
  7. </HEAD>
  8. <BODY>
  9. <form action="register.php" method="POST" />
  10. <tr>
  11. <td>Login</td>
  12. <td><input type="text" name="login" /></td>
  13. </tr>
  14. <tr>
  15. <td>Hasło</td>
  16. <td><input type="password" name="pass" /></td>
  17. </tr>
  18. <tr>
  19. <td>Powtórz hasło</td>
  20. <td><input type="password2" name="pass2" /></td>
  21. </tr>
  22. <tr>
  23. <td>Numer Gadu-Gadu</td>
  24. <td><input type="text" name="numer_gg" /></td>
  25. </tr>
  26. <br>
  27. <font color="red">
  28. Uwaga numer <b>Gadu-Gadu</b> musi być poprawny,
  29. <br>
  30. Jest to jedyny sposób na odzyskanie hasła.
  31. <br>
  32. <br>
  33. </font>
  34. <input type="submit" value="Rejestracja Konta" />
  35. </form>
  36. </CENTER>
  37. </BODY>
  38. </html>


  1. <?
  2.  
  3. include('config.php');
  4.  
  5. mysql_connect($host,$user,$password);
  6.  
  7. if(isset($_POST['submit']))
  8. {
  9. $login = $_POST['login'];
  10. $pass = $_POST['pass'];
  11. $pass2 = $_POST['pass2'];
  12. $numer_gg = $_POST['numer_gg'];
  13.  
  14. if(empty($_POST['login']) || empty($_POST['pass']) || empty($_POST['pass2']) || empty($_POST['numer_gg'])) echo 'Nie wszystkie pola zostay wypełnione';
  15.  
  16. else
  17. {
  18. if($pass != $pass2) echo 'Podane hasła różnią się';
  19.  
  20.  
  21. $result = mysql_query("SELECT * FROM `users` WHERE login = '$login'");
  22.  
  23. if(mysql_num_rows($result)!=0) echo 'Taki user już istnieje w bazie';
  24.  
  25. else
  26. {
  27. $data = date('Y-m-d');
  28. $ip = $_SERVER['REMOTE_ADDR'];
  29.  
  30. $query = mysql_query("INSERT INTO `users` (`id`, `login`, `pass`, `pass2`, `numer_gg`, `data`, `ip`) VALUES ('id', '".$login."', '".$pass."', '".$pass2."', '".$numer_gg."', '".$data."', '".$ip."')");
  31.  
  32. if(mysql_query($query)) echo 'Rejestracja została zakończona pomyślnie.<br>Data: $data<br>IP: $ip';
  33.  
  34. }
  35.  
  36. }
  37. }
  38.  
  39.  
  40. ?>


Mój problem polega na tym iż niby wszystko działa ale tak naprawdę nie działa bo nie wywala żądnych błędów ,a dokładniej po wpisaniu danych w formularz i kliknięciu rejestracja nic się nie dzieje tak samo jak bym go zostawił pusty też się nic nie dzieje.
Kshyhoo
a co mówi var_dump?
ethann
<form action="register.php" method="POST" />
<form> nie jest tagiem otwierająco-zamykającym więc mały błąd tutaj (chodzi o ukośnik na końcu), jednak nie on jest problemem.

Problemem jest brak wartości name przy submicie.
  1. <input type="submit" value="Rejestracja Konta" />

powinno być:
  1. <input type="submit" name="submit" value="Rejestracja Konta" />


Stąd warunek na samym początku nie był spełniony:
  1. if(isset($_POST['submit']))





#EDIT
Takie małe wzmianki a propos kodu:
końcówka nie ma sensu, dwa razy wykonujesz mysql_query.
  1. $query = mysql_query("INSERT INTO `users` (`id`, `login`, `pass`, `pass2`, `numer_gg`, `data`, `ip`) VALUES ('id', '".$login."', '".$pass."', '".$pass2."', '".$numer_gg."', '".$data."', '".$ip."')");
  2. if(mysql_query($query)) echo 'Rejestracja została zakończona pomyślnie.<br>Data: $data<br>IP: $ip';

Cytat
For other type of SQL statements, INSERT, UPDATE, DELETE, DROP, etc, mysql_query() returns TRUE on success or FALSE on error.
@manual

co z tego wynika. Po pierwszym wykonaniu mysql_query(), wartość zmiennej $query jest zmieniana na wartość logiczną. Drugi warunek powinien sprawdzić czy zapytanie się powiodło, więc wystarczy samo if($query).


  1. if($pass != $pass2) echo 'Podane hasła różnią się';

Warunek masz, jednak jedyne co on robi to wyświetla tekst, a konto i tak próbuje się utworzyć.


parsowanie:

W przypadku haseł powinieneś użyć jakiegoś szyfrowania, np md5 + soli, żeby hasła w bazie nie były trzymane w czystej postaci (plain) - wtedy przy utracie (wykradnięciu) bazy danych nie są one "podane na tacy" agresorowi, ma kolejną barykadę do pokonania.
Sob0l3k
ethann dzięki za pomoc hasła hasuje algorytmem sha1 ,a co do wykrywania czy hasła są prawidłowe czyli:

  1. if($pass != $pass2) echo 'Podane hasła różnią się';


Zastosowałem i działa smile.gif

  1. if($pass != $pass2) exit('Podane hasła różnią się');
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.