Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [MySQL][PHP]Rejestracja
Forum PHP.pl > Forum > Przedszkole
nansss
Z wcześniejszym problemem sobie poradziłem, ale pojawił się następny i nie wiem jak go zlikwidować.

zarejestruj.php
  1. <?php
  2. $connect = mysql_connect('localhost', 'root', 'password') or die('Nie mo&#x17C;na po&#x142;&#x105;czyc si&#x119; z baz&#x105; danych. Przepraszamy za k&#x142;opoty');
  3. $db = mysql_select_db('db') or die('Nie mo&#x17C;na wybra&#x107; bazy danych. Przepraszamy za k&#x142;opoty');
  4. $login = $_POST['login'];
  5. $access = $_POST['0'];
  6. $email = $_POST['email'];
  7. $haslo = md5(md5('haslo'));
  8. $haslo2 = md5(md5('haslo2'));
  9. $data = date('Y-m-d-G:i:s');
  10. $zapytanie = mysql_query("SELECT COUNT(*) FROM user WHERE login='$login' LIMIT 1");
  11. $zajete = mysql_fetch_row($zapytanie);
  12. $zapytanie = mysql_query("SELECT COUNT(*) FROM user WHERE email='$email' LIMIT 1");
  13. $zajete1 = mysql_fetch_row($zapytanie);
  14. if (empty($_POST["login"]) || empty($_POST["email"]) || empty($_POST["haslo"]) || empty($_POST["haslo2"]) and !isset($_GET["active"]) and isset($_POST['login']))
  15. {
  16. echo '<center>Nie wype&#x142;niono wszystkich pól.</center> <meta http-equiv="Refresh" content="3; url=rejestruj.php" />';
  17. }
  18. elseif($_POST["haslo"]!=$_POST["haslo2"])
  19. {
  20. echo '<center>Podane hasła nie s&#x105; identyczne.</center> <meta http-equiv="Refresh" content="3; url=rejestruj.php" />';
  21. }
  22. elseif($zajete[0] != 0)
  23. {
  24. echo '<center>Podana nazwa u&#x17C;ytkownika jest ju&#x17C; zaj&#x119;ta.</center> <meta http-equiv="Refresh" content="3; url=rejestruj.php" />';
  25. }
  26. elseif($zajete1[0] != 0)
  27. {
  28. echo '<center>Podany email jest zaj&#x119;ty przez innego u&#x17C;ytkownika.</center> <meta http-equiv="Refresh" content="3; url=rejestruj.php" />';
  29. }
  30. elseif(!$_POST["email"] || !preg_match("/^[-0-9a-zA-Z_\.]+@([-0-9a-zA-Z_\.]+\.)+([0-9a-zA-Z]){2,4}$/i", $_POST["email"]))
  31. {
  32. echo '<center>Podany email jest nieprawid&#x142;owy.</center> <meta http-equiv="Refresh" content="3; url=rejestruj.php" />';
  33. }
  34. else
  35. {
  36. $zapytanie = "INSERT INTO `user` (`login`, `access`, `email`, `haslo`, `data`) VALUES ('".$login."', '".$access."', '".$email."', '".$haslo."', '".$data."')";
  37. $zap= "SELECT `email` FROM `user` ORDER BY `id` DESC";
  38. $idzap = mysql_query($zap);
  39. $naglowki = "Content-type: text/html; charset=iso-8859-2\r\n";
  40. $naglowki .= "Reply-to: nansss@xxx.pl <nansss@xxx.pl>\r\n";
  41. $naglowki .= "From: nansss@xxx.pl <nansss@xxx.pl>\r\n";
  42. }
  43. if ( ! mysql_query($zapytanie))
  44. {
  45. }
  46. else
  47. {
  48. echo '<center>Twoje konto zosta&#x142;o za&#x142;o&#x17C;one.<br>
  49. W ci&#x105;gu 10 minut otrzymasz email z następnymi instrukcjami.</center>';
  50. $wiersz = mysql_fetch_row($idzap);
  51. $kod = str_shuffle("qwertyuiopasdfghjklzxcvbnm1234567890");
  52. mail($email, 'Aktywacja konta na xxx.pl', '<b>Witaj na xxx.pl!</b><br><br><br>Konto <b>'.$login.'</b> zostało zarejestrowane na podany adres e-mail.<br>W celu potwierdzenia rejestracji konta kliknij w poniższy odnośnik:<br><a href="http://xxx.pl/zarejestruj.php?active='.$kod.'"> <a href="http://xxx.pl/zarejestruj.php?active='.$kod.'" target="_blank">http://xxx.pl/zarejestruj.php?active='.$kod.'</a> </a><br><br>Jeśli nie rejestrowałeś konta o nazwie <b>'.$login.'</b> po prostu zignoruj tego maila.<br><br><br>------<br>Wiadomość wygenerowana automatycznie<br>przez serwis xxx.pl', $naglowki);
  53. $zapy = "UPDATE user SET klucz = ('".$kod."') WHERE access = 0";
  54. $idzapy = mysql_query($zapy);
  55. }
  56. if($_GET["active"])
  57. {
  58. mysql_query("UPDATE user SET access = '1' WHERE klucz = '$_GET[active]'");
  59. {
  60. echo '<center>Aktywacja uko&#x144;czona pomy&#x15B;lnie. Mo&#x17C;esz ju&#x17C; korzysta&#x107; z naszego serwisu.<br><a href="loguj.php>Przejd&#x17A; do logowania</a></center>';
  61. }
  62. else
  63. {
  64. echo '<center>Podano nieistniej&#x105;cy kod aktywacyjny.</center>';
  65. }
  66. }
  67. mysql_close($connect);
  68. ?>


Po kliknięciu w link aktywacyjny wyświetla:

Podany email jest nieprawidłowy.
Aktywacja ukończona pomyślnie. Możesz już korzystać z naszego serwisu.
Przejdź do logowania.http://sampo.boo.pl/loguj.php

A powinno wyświetlać:

Aktywacja ukończona pomyślnie. Możesz już korzystać z naszego serwisu.
Przejdź do logowania
.

Nie wiem jak to zrobić. Mógłbym prosić o waszą pomoc?

Z góry dziękuje.
pyro
  1. Podatność na SQL Injection
  2. Podatność na XSS
  3. Co do błędu to ten else po tym if'ie
  1. <li class="li1">if ([url="http://www.php.net/empty"]empty[/url]($_POST["login"]) || [url="http://www.php.net/empty"]empty[/url]($_POST["email"]) || [url="http://www.php.net/empty"]empty[/url]($_POST["haslo"]) || [url="http://www.php.net/empty"]empty[/url]($_POST["haslo2"]) and ![url="http://www.php.net/isset"]isset[/url]($_GET["active"]) and [url="http://www.php.net/isset"]isset[/url]($_POST['login']))


prawdopodobnie za mało sięga
nansss
To od czego zależy ile sięga i jak zrobić, żeby sięgał wystarczająco?

PS. Pewnie to głupie pytanie, ale nie znam na nie odpowiedzi smile.gif

Co mam zrobić?
pyro
Chodzi o to, że nawias klamrowy od tego else {} za wcześnie zamknąłeś winksmiley.jpg
Pawel_W
mógłbym zapytać co to jest?
  1. if ( ! mysql_query($zapytanie))
  2. {
  3. }
  4. else

przecież można chyba samo
  1. if (mysql_query($zapytanie))
  2. {
  3. // kod z else
  4. }

i już będziesz miał mniej tych nawiasów klamrowych ;o

polecam jeszcze lekturę tego tematu: Temat: podwjne hashowanie hase
nansss
Ok. Poradziłem sobie, według własnego pomysłu. Po prostu potwierdzenie dałem do innego pliku.
Ale dziękuje wszystkim za pomoc smile.gif

Czas na logowanie ;]
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.