Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [HTML][PHP]rejestracja
Sob0l3k
post
Post #1





Grupa: Zarejestrowani
Postów: 8
Pomógł: 0
Dołączył: 23.02.2012

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


  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.
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 3)
Kshyhoo
post
Post #2





Grupa: Opiekunowie
Postów: 3 855
Pomógł: 317
Dołączył: 4.01.2005
Skąd: że




a co mówi var_dump?


--------------------
Go to the top of the page
+Quote Post
ethann
post
Post #3





Grupa: Zarejestrowani
Postów: 56
Pomógł: 18
Dołączył: 7.04.2012

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


<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.

Ten post edytował ethann 8.04.2012, 22:59:58
Go to the top of the page
+Quote Post
Sob0l3k
post
Post #4





Grupa: Zarejestrowani
Postów: 8
Pomógł: 0
Dołączył: 23.02.2012

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


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ę');
Go to the top of the page
+Quote Post

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

 



RSS Aktualny czas: 20.08.2025 - 04:49