Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [MySQL][PHP]problem z walidacją adresu email
imysz
post
Post #1





Grupa: Zarejestrowani
Postów: 54
Pomógł: 0
Dołączył: 16.08.2009

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


Witam. Tworzę formularz rejestracji i mam problem z sprawdzeniem poprawności adresu email. by był on w formacie np. nazwa@gmail.com.
stosuję taki fragment do tego:

  1. function valid_email($email)
  2. {
  3. if (preg_match("/^([a-z0-9+_-]+)(.[a-z0-9+_-]+)
  4. *@([a-z0-9-]+.)+[a-z]{2,6}$/ix", $email))
  5. return true;
  6. else
  7. return false;
  8. }
  9.  
  10. if (!valid_email($email))
  11. echo "poprawny";
  12. else echo "Nie poprawy adres e-mail";


ale mimo wpisania niepoprawnego adresu(np. nazwa) rekord dodaje się do bazy

oto cały kod kod, poprawnie jest napisany?:

  1. <?php
  2.  
  3.  
  4. $login = $_POST['login'];
  5. $haslo = $_POST['haslo'];
  6. $haslo2 = $_POST['haslo2'];
  7. $email = $_POST['email'];
  8.  
  9.  
  10.  
  11.  
  12. $login = trim($login);
  13. $haslo = trim($haslo);
  14. $haslo2 = trim($haslo2);
  15. $email = trim($email);
  16.  
  17. // sprawdzenie poprawnosci loginu
  18.  
  19. if(!$login || !$haslo || !$haslo2 || !$email)
  20. {
  21. if(empty($login))
  22. {
  23. echo 'Pole login nie zostało wypełnione<br/>';
  24. }
  25.  
  26. $db= mysql_connect('localhost', 'db994313', 'pizgafurtke');
  27. mysql_query("SET NAMES 'utf8' COLLATE 'utf8_polish_ci'");
  28. mysql_select_db('db994313');
  29.  
  30. $zapytanie = "select * from uzytkownicy where login='$login'";
  31. $wynik_login = mysql_query($zapytanie);
  32. $wynik_login_rezultat = mysql_num_rows($wynik_login);
  33. if($wynik_login_rezultat > 0)
  34. {
  35. echo 'Login jest już używany<br/>';
  36. }
  37.  
  38. if(strlen($login)<5)
  39. {
  40. echo 'Login powinien zawierać przynajmniej 5 znaków<br/>';
  41. }
  42.  
  43. if(strlen($login) > 16)
  44. {
  45. echo 'Login powinien zawierać maksynmalnie 16 znaków';
  46. }
  47.  
  48. // sprawdzenie hasla
  49. if(empty($haslo))
  50. {
  51. echo 'Pole haslo nie zostalo wypelnione<br/>';
  52. }
  53. if(empty($haslo2))
  54. {
  55. echo 'Pole z potwierdzeniem hasła nie zostało wypełnione<br/>';
  56. }
  57. if(strlen($haslo) < 4)
  58. {
  59. echo 'Hasło powinno zawierać przynajmniej 5 znaków<br/>';
  60. }
  61. if(strlen($haslo2) <5)
  62. {
  63. echo 'Hasło powinno zawierać przynajmniej 5 znaków<br/>';
  64. }
  65. if($haslo !=$haslo2)
  66. {
  67. echo 'Podane hasła różnią się do siebie<br/>';
  68. }
  69.  
  70. // sprawdzenie adresu email
  71. if(empty($email))
  72. {
  73. echo 'Pole email nie zostało wypełnione';
  74. }
  75.  
  76. $zapytanie_email = "select * from uzytkownicy where email='$email'";
  77. $wynik_email = mysql_query($zapytanie_email);
  78. $wynik_email_rezultat = mysql_num_rows($wynik_email);
  79. if($wynik_email_rezultat > 0)
  80. {
  81. echo 'Podany email jest już zarejestrowany<br/>';
  82. }
  83.  
  84. function valid_email($email)
  85. {
  86. if (preg_match("/^([a-z0-9+_-]+)(.[a-z0-9+_-]+)
  87. *@([a-z0-9-]+.)+[a-z]{2,6}$/ix", $email))
  88. return true;
  89. else
  90. return false;
  91. }
  92.  
  93. if (!valid_email($email))
  94. echo "poprawny";
  95. else echo "Nie poprawy adres e-mail";
  96.  
  97. }
  98. else{
  99. $zapytanie_dodaj = "insert into uzytkownicy values('".$login."', sha1('".$haslo."'), '".$email."')";
  100. $wyslij_zapytanie = mysql_query($zapytanie_dodaj);
  101. if($wyslij_zapytanie){
  102. echo 'Rejestraja ukończona pomyślnie';
  103. }
  104.  
  105.  
  106.  
  107. }
  108. ?>
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
imysz
post
Post #2





Grupa: Zarejestrowani
Postów: 54
Pomógł: 0
Dołączył: 16.08.2009

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


MateuszScirka
Działa tak jak chciałem. Dziękuję.

teraz mam taką sytuację, że formularz jest w pliku register.php i w formularzu jest że ma się wykonać skrypt register_cnf.php w którym właśnie jest cały kod rejestrujący. Gdy coś było źle wypełnione w formularzu lub puste i gdy daję wstecz w przeglądarce by poprawić to formularz jest pusty, da się zrobić tak aby dane które były dobrze wpisane zostały tak jak były, nie kasowały się?

lub czy da się zrobić tak aby formularz i skrypt rejestrujący był w jednym pliku *php ?

pozdrawiam
Go to the top of the page
+Quote Post

Posty w temacie


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: 12.10.2025 - 04:31