Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [inne]E-MAIL standart
Forum PHP.pl > Forum > Przedszkole
Mod4Tech
Witam. Stworzyłem ostatnio skrypt który sprawdza poprawność e-mail. I do tego mam pytanie od ilu do ilu znaków może znajdować się przed znakiem "@" ile po "@" do "." i z ilu może składać się domena.
erix
Wymyśliłem koło!

Po cholerę pisałeś od nowa, skoro masz filter_var i Google...?
iQ12P
Google.pl > Z ilu liter maxymalnie składa się domena.
A Email (przed @) ok. 15, nie więcje.
Mephistofeles
Jasne, 15. Mój na gmailu ma 17.
Tak jak pisał erix użyj lepiej filter_var i za bardzo nie ograniczaj długości.
lobopol
phi 17
Cytat
contact-admin-hello-webmaster-info-services-peter-crazy-but-oh-so-ubber-cool-english-alphabet-loverer-abcdefghijklmnopqrstuvwxyz@please-try-to.send-me-an-email-if-you-can-possibly-begin-to-remember-this-coz.this-is-the-longest-email-address-known-to-man-but-to-be-honest.this-is-such-a-stupidly-long-sub-domain-it-could-go-on-forever.pacraig.com


Nie patrz na długość maila bo nic ci to nie da.

Mod4Tech
Napisałem taki skrypt to tego oceńcie:
  1. <html>
  2. <head>
  3. <title>e-mail</title>
  4. </head>
  5. <body>
  6. <form method="post" action="index.php">
  7. <input type="text" name="email">
  8. <input type="submit" value="Wyslij">
  9. </form>
  10. <?php
  11. if (preg_match('%^[0-9 a-z A-Z]{3,45}@[0-9 a-z A-Z]{2,8}.[a-z A-Z ]{2,4}$%',$_POST['email'])){
  12.  
  13. echo('dobry');
  14. }
  15. else {
  16. echo('zly');
  17. }
  18. ?>
  19. </body>
  20. </html>
Crozin
Chcesz robić to wyrażeniem regularnym? Bardzo proszę oto wyrażenie (PCRE)
  1. $pattern = "/^(?!(?:(?:\\x22?\\x5C[\\x00-\\x7E]\\x22?)|(?:\\x22?[^\\x5C\\x22]\\x22?)){255,})(?!(?:(?:\\x22?\\x5C[\\x00-\\x7E]\\x22?)|(?:\\x22?[^\\x5C\\x22]\\x22?)){65,}@)(?:(?:[\\x21\\x23-\\x27\\x2A\\x2B\\x2D\\x2F-\\x39\\x3D\\x3F\\x5E-\\x7E]+)|(?:\\x22(?:[\\x01-\\x08\\x0B\\x0C\\x0E-\\x1F\\x21\\x23-\\x5B\\x5D-\\x7F]|(?:\\x5C[\\x00-\\x7F]))*\\x22))(?:\\.(?:(?:[\\x21\\x23-\\x27\\x2A\\x2B\\x2D\\x2F-\\x39\\x3D\\x3F\\x5E-\\x7E]+)|(?:\\x22(?:[\\x01-\\x08\\x0B\\x0C\\x0E-\\x1F\\x21\\x23-\\x5B\\x5D-\\x7F]|(?:\\x5C[\\x00-\\x7F]))*\\x22)))*@(?:(?:(?!.*[^.]{64,})(?:(?:(?:xn--)?[a-z0-9]+(?:-[a-z0-9]+)*\\.){1,126}){1,}(?:(?:[a-z][a-z0-9]*)|(?:(?:xn--)[a-z0-9]+))(?:-[a-z0-9]+)*)|(?:\\[(?:(?:IPv6:(?:(?:[a-f0-9]{1,4}(?::[a-f0-9]{1,4}){7})|(?:(?!(?:.*[a-f0-9][:\\]]){7,})(?:[a-f0-9]{1,4}(?::[a-f0-9]{1,4}){0,5})?::(?:[a-f0-9]{1,4}(?::[a-f0-9]{1,4}){0,5})?)))|(?:(?:IPv6:(?:(?:[a-f0-9]{1,4}(?::[a-f0-9]{1,4}){5}:)|(?:(?!(?:.*[a-f0-9]:){5,})(?:[a-f0-9]{1,4}(?::[a-f0-9]{1,4}){0,3})?::(?:[a-f0-9]{1,4}(?::[a-f0-9]{1,4}){0,3}:)?)))?(?:(?:25[0-5])|(?:2[0-4][0-9])|(?:1[0-9]{2})|(?:[1-9]?[0-9]))(?:\\.(?:(?:25[0-5])|(?:2[0-4][0-9])|(?:1[0-9]{2})|(?:[1-9]?[0-9]))){3}))\\]))$/iD";


Tylko po co się babrać z takim syfem, skoro można tak jak @erix napisał użyć filter_var (notabene powyższe wyrażenie pochodzi właśnie z tej funkcji) i mieć czysty, przejrzysty i zrozumiały kod? Dodatkowo funkcja ta sprawdza kilka innych rzeczy.
Mod4Tech
Dziękuje wszystkim za odpowiedzi.


Temat do zamknięcia.
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.