Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: skrypt logowania
Forum PHP.pl > Inne > Oceny
Savail
Witam
Napisalem prosty skrypt logowania i chcialbym go wam zaprezentowac tongue.gif. Cudo to nie jest i dlatego jakbyscie mieli jakies sugestie porady ulepszenia to bylbym wdzieczny za ich podanie. link do przetestowania: link
form.php:
  1. <html>
  2. <head>
  3. <title>Test formularza</title>
  4. <link rel="stylesheet" href="arkusz.css" type="text/css" media="all" />
  5. </head>
  6. <body>
  7.  
  8. <form action="skrypt.php" method="POST">
  9. <b>Rejestracja</b><br />
  10. Login:<input type="text" name="login"><br />
  11. Hasło:<input type="password" name="haslo"><br />
  12. Powtórz hasło:<input type="password" name="powt_haslo"><br />
  13. Email:<input type="text" name="email"><br />
  14. Powtórz email:<input type="text" name="powt_email"><br />
  15. <input type="image" name="los" value="
  16. <?php
  17. for($x=0; $x<6; $x++){
  18. $losuj = rand(1, 9);
  19. echo $losuj;
  20. }
  21. ?>
  22. ">
  23. <input type="text" name="token"><br />
  24. <input type="submit" value="Zarejestruj się!">
  25. </form>
  26.  
  27. </body>
  28. </html>

Skrypt.php:
  1. <?php
  2. if($_GET['active']){
  3. mysql_connect('adres', 'user, 'haslo');
  4. mysql_select_db('baza');
  5. $zapytanie2 = "select `active` from `uzytkownicy`";
  6. $idz2 = mysql_query($zapytanie2);
  7. while($active = mysql_fetch_row($idz2)){
  8. $ile = count($active);
  9. for($i=0; $i<$ile; $i++){
  10. $klucz = $_GET['active'];
  11. similar_text($active[$i], $klucz, $procent[]);
  12. }
  13. }
  14. $ile2 = count($procent);
  15. for($i2=0; $i2<$ile2; $i2++){
  16. if($procent[$i2] == 100){
  17. $klucz = $_GET['active'];
  18. $zapytanie3 = "UPDATE `uzytkownicy` set `active` = '0' where `active` = '$klucz'";
  19. $idz3 = mysql_query($zapytanie3);
  20. echo "rejestracja zakonczona pomyslnie";
  21. exit;
  22. }
  23. }
  24. }
  25. else{
  26. if(empty($_POST['login'])){
  27. echo "Pole login nie zostało wypełnione";
  28. exit;
  29. }
  30. if(preg_match('/^[a-z0-9]*[a-z0-9]*$/i', $_POST['login'])){
  31. }
  32. else{
  33. echo "Wpisany login zawiera nieodpowiednie znaki, takie jak spacja dwukropek itd.";
  34. exit;
  35. }
  36. if(empty($_POST['haslo'])){
  37. echo "Pole hasło nie zostało wypełnione";
  38. exit;
  39. }
  40. if(empty($_POST['powt_haslo'])){
  41. echo "Nie powtórzono hasła";
  42. exit;
  43. }
  44. if(empty($_POST['email'])){
  45. echo "Pole email nie zostalo wypelnione";
  46. exit;
  47. }
  48. if(empty($_POST['powt_email'])){
  49. echo "Nie powtórzono emaila";
  50. exit;
  51. }
  52. if(empty($_POST['token'])){
  53. echo "Nie wprowadziłeś sześciocyfrowego kodu";
  54. exit;
  55. }
  56. if($_POST['token'] == $_POST['los']){
  57. echo "";
  58. }
  59. else{
  60. echo "Wprowadziłeś nieprawidłowy kod";
  61. exit;
  62. }
  63.  
  64. mysql_connect('adres', 'user', 'haslo');
  65. mysql_select_db('baza');
  66. $zapytanie = "select `login` from `uzytkownicy` where `active` = '0'";
  67. $idz = mysql_query($zapytanie);
  68. while($wiersz0 = mysql_fetch_row($idz)){
  69. $ile0 = count($wiersz0);
  70. for($i0=0; $i0<$ile0; $i0++){
  71. similar_text($wiersz0[$i0], $_POST['login'], $procent[]);
  72. $ile02 = count($procent);
  73. for($i02=0; $i02<$ile02; $i02++){
  74. if($procent[$i02] == 100){
  75. echo "Podana nazwa użytkownika jest już zajęta";
  76. exit;
  77. }
  78. }
  79. }
  80. }
  81.  
  82. $zapytanie = "select `login` from `uzytkownicy` where `active` = '1'";
  83. $idz = mysql_query($zapytanie);
  84. while($wiersz0 = mysql_fetch_row($idz)){
  85. $ile0 = count($wiersz0);
  86. for($i0=0; $i0<$ile0; $i0++){
  87. similar_text($wiersz0[$i0], $_POST['login'], $procent[]);
  88. $ile02 = count($procent);
  89. for($i02=0; $i02<$ile02; $i02++){
  90. if($procent[$i02] == 100){
  91. echo "Podana nazwa użytkownika jest już zajęta";
  92. exit;
  93. }
  94. }
  95. }
  96. }
  97.  
  98. $zapytanie = "select `email` from `uzytkownicy` where `active` = '0'";
  99. $idz = mysql_query($zapytanie);
  100. while($wiersz0 = mysql_fetch_row($idz)){
  101. $ile0 = count($wiersz0);
  102. for($i0=0; $i0<$ile0; $i0++){
  103. similar_text($wiersz0[$i0], $_POST['email'], $procent[]);
  104. $ile02 = count($procent);
  105. for($i02=0; $i02<$ile02; $i02++){
  106. if($procent[$i02] == 100){
  107. echo "Podany email jest już zajęty";
  108. exit;
  109. }
  110. }
  111. }
  112. }
  113.  
  114. $zapytanie = "select `email` from `uzytkownicy` where `active` = '1'";
  115. $idz = mysql_query($zapytanie);
  116. while($wiersz0 = mysql_fetch_row($idz)){
  117. $ile0 = count($wiersz0);
  118. for($i0=0; $i0<$ile0; $i0++){
  119. similar_text($wiersz0[$i0], $_POST['email'], $procent[]);
  120. $ile02 = count($procent);
  121. for($i02=0; $i02<$ile02; $i02++){
  122. if($procent[$i02] == 100){
  123. echo "Podany email jest już zajęty";
  124. exit;
  125. }
  126. }
  127. }
  128. }
  129.  
  130. if(($_POST['haslo'] == $_POST['powt_haslo'])&& $_POST['email'] == $_POST['powt_email']){
  131. echo "link aktywacyjny został wysłany na twój email. Aby zakończyć rejestrację wejdź na swoją skrzynkę pocztową i podążaj instrukcjami zawartymi w wiadomości. Jeśli po 5 minutach nie dostałeś wiadomości upewnij się czy nie ma jej w folderze spam.";
  132. $activationkey = substr(md5(time().range(1, 9999)), 1, 12);
  133. $login = $_POST['login'];
  134. $haslo = $_POST['haslo'];
  135. $email = $_POST['email'];
  136. $zapytanie = "insert into `uzytkownicy`(`id`, `active`, `login`, `haslo`, `email`) Values ('', '$activationkey', '$login', '$haslo', '$email')";
  137. $idz = mysql_query($zapytanie);
  138. $wyslij = mail($email, "Rejestracja", "http://skrypt.host22.com/skrypt.php?active=".$activationkey);
  139. if($wyslij = false){
  140. echo "Błąd w połączeniu, proszę spróbować póżniej";
  141. exit;
  142. }
  143. exit;
  144. }
  145. else{
  146. echo "Powtórzone hasło lub email nie zgadza się";
  147. exit;
  148. }
  149. }
  150. mysql_close();
  151. ?>
erix
Aż prosi się o wyjątki zamiast exit...

PS. Przeniosłem
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.