Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> Jak sprawdzic czy dany string jest e-mail'em ?
Leon_DJ
post 29.01.2004, 15:40:39
Post #1





Grupa: Zarejestrowani
Postów: 4
Pomógł: 0
Dołączył: 28.01.2004
Skąd: Bromberg (obecna Bydgoszcz)

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


Witam,
jak sprawdzic czy dany string wpisany
w formularzu jest e-mail'em ?

Chodzi o to, gdy ktos wpisze w polu przeznaczonym
na e-mail cos innego, to zeby stronka go "nawrocila"
komunikatem ze wpisany tekst nie jest e-mailem
i zeby mogl poprawic na wlasciwy

z gory dziekuje i pozdrawiam
Leon_DJ


--------------------
Ścieżka sprawiedliwości wiedzie przez nieprawości samolubnych i tyranię złych ludzi.
Go to the top of the page
+Quote Post
rzseattle
post 29.01.2004, 15:49:06
Post #2





Grupa: Przyjaciele php.pl
Postów: 554
Pomógł: 0
Dołączył: 4.04.2002
Skąd: Tychy

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


http://php.pl/search.php


--------------------
"Real children don't go hoppity-skip unless they are on drugs."
Go to the top of the page
+Quote Post
kyno
post 29.01.2004, 15:58:34
Post #3





Grupa: Przyjaciele php.pl
Postów: 121
Pomógł: 1
Dołączył: 4.01.2004
Skąd: Jawor

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


[php:1:6dda985aa6]<?php
function check_email($email) {
if(eregi("^[a-zA-z0-9_.-]+@[a-zA-z0-9-]+.[a-zA-z0-9-.]+$", $email))
return TRUE;
else
return FALSE;
}
?>[/php:1:6dda985aa6]
Go to the top of the page
+Quote Post
dob
post 29.01.2004, 16:06:25
Post #4





Grupa: Zarejestrowani
Postów: 166
Pomógł: 0
Dołączył: 30.01.2003
Skąd: Warszawa

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


Ja taką małą uwage wtrące do kodu :wink: jezeli stosujesz funkcje eregi to nie potrzebne jest sprawdzanie również duzych liter

[php:1:8e7642213a]<?php
function check_email($email) {
if(eregi("^[a-z0-9_.-]+@[a-z0-9-]+.[a-z0-9-.]+$", $email))
return TRUE;
else
return FALSE;
}
?>[/php:1:8e7642213a]

Ja jeszcze dorzuce inne wyrazenie regularne o takim samym działaniu
[php:1:8e7642213a]<?php
if (!eregi("^[_.0-9a-z-]+@([0-9a-z][0-9a-z-]+.)+[a-z]{2,4}$",$mail)){
exit("Podany e-mail jest nieprawidłowy");
}
?>[/php:1:8e7642213a]
Wydaje mi sie ze jest troche lepsze bo uwzględnia domenę od 2 do 4 znaków z przecdziału a-z


--------------------
Go to the top of the page
+Quote Post
nediam
post 30.01.2004, 11:50:46
Post #5





Grupa: Zarejestrowani
Postów: 29
Pomógł: 0
Dołączył: 30.01.2004

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


  1. <?php
  2. // Funkcja sprawdzajaca poprawnosc maila 
  3. function check_mail($email) 
  4. { 
  5. $regexp = &#092;"/^([[:alnum:]]([[:alnum:]_.:-])?)+@([[:alnum:]][[:alnum:]_.:-]+[[:alnum:]].)?((([[:alnum:]]([[:alnum:]_.:-]{1,59})?[[:alnum:]])|[[:alnum:]]).)([a-z]{2,4}|[0-9]{1,3})$/i\"; 
  6. $email = strtolower($email); 
  7.  
  8. if(preg_match($regexp, $email)) 
  9.  $check = '<font color=green>OK</font>'; 
  10. else 
  11.  $check = '<font color=red>nie OK</font>'; 
  12.  
  13. return $check; 
  14. }; 
  15. ?> 
  16.  
  17. <form action=\"/testy/?id=4\" method=post> 
  18. <p> 
  19. Podaj propozycje maila do sprawdzenia: 
  20. <input name=mail type=text value=\"<? echo $_POST['mail'] ?>\" size=20 class=form> 
  21. <input type=submit name=submit value=\"Sprawdz\" class=formb> 
  22. </p> 
  23. </form> 
  24. <? 
  25. if($_POST['submit']) 
  26.  { 
  27.  echo '<b>Mail podany przez ciebie:</b><br>'; 
  28.  echo $_POST['mail'] . ' &raquo; '; 
  29.  echo check_mail($_POST['mail']); 
  30.  echo '<br><br>'; 
  31.  } 
  32.  
  33. // Sprawdzmy czy dzialaja maile przykladowe 
  34. $maile[] = 'jaNek@wp.Pl'; 
  35. $opis[] = 'OK - litery mogą być duże i małe'; 
  36. $maile[] = 'jaNek_79-80@wp-79_80.Pl'; 
  37. $opis[] = 'OK - użytkownik może być z \"-\" i \"_\"'; 
  38. $maile[] = 'jaNek.8@wp.Pl'; 
  39. $opis[] = 'OK - użytkownik może być z \".\"'; 
  40. $maile[] = 'jaNek:79@wp.Pl'; 
  41. $opis[] = 'OK - użytkownik może być z \":\"'; 
  42. $maile[] = 'jaNek.8@wp.jaNek'; 
  43. $opis[] = 'nie OK - nie ma takiej domeny 5 literowej'; 
  44. $maile[] = 'jaNek@e-janek.wp.Pl'; // thx to Michal 
  45. $opis[] = 'OK - nazwa domeny może zawierać \"-\"'; 
  46. $maile[] = 'jaNek@-janek.Pl'; 
  47. $opis[] = 'nie OK - domena nie może się zaczynać od \"-\"'; 
  48. $maile[] = 'jaNek@poseł.Pl'; 
  49. $opis[] = 'nie OK - domena nie może mieć polskich liter'; 
  50. $maile[] = 'jaNek@w'; 
  51. $opis[] = 'nie OK - brak domeny'; 
  52. $maile[] = 'jaNek@w.Z'; 
  53. $opis[] = 'nie OK - nie ma takiej domeny 1 literowej'; 
  54. $maile[] = 'janek@149.156.124.13'; // thx to Hassan 
  55. $opis[] = 'OK - domena może być w postaci adresu IP'; 
  56. $maile[] = 'janek@jestem-janek-fajny-gosc-mam-na-dzis-wszystkiego-dosc-wiec-juz-koncze-na-dzis.pl'; //thx to mati 
  57. $opis[] = 'nie OK - domena może mieć max 63 znaki'; 
  58. $maile[] = 'janek@wp..pl'; 
  59. $opis[] = 'nie OK - błędna domena'; 
  60.  
  61. echo '<b>Maile przykładowe:</b><br>'; 
  62. for($n=0;$n<count($maile);$n++) 
  63. { 
  64. echo $maile[$n]; 
  65. echo ' <font class=male>(powinno być: ' . $opis[$n] . ')</font> &raquo; '; 
  66. echo check_mail(&#092;"$maile[$n]\"); 
  67. echo '<br>'; 
  68. }; 
  69. ?>


Ten post edytował nediam 23.10.2004, 15:02:42
Go to the top of the page
+Quote Post
kszychu
post 30.01.2004, 12:00:02
Post #6





Grupa: Przyjaciele php.pl
Postów: 2 712
Pomógł: 23
Dołączył: 27.10.2003
Skąd: z kontowni

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


[php:1:98b7d9b9e1]<?php
$maile[] = 'jaNek@poseł.Pl';
$opis[] = 'nie OK - domena nie może mieć polskich liter';
?>[/php:1:98b7d9b9e1]
Tak na marginesie, to troszke nieaktualne


--------------------
"Coś się kończy, coś się zaczyna." Andrzej Sapkowski
Go to the top of the page
+Quote Post
Liko
post 25.05.2004, 21:44:30
Post #7





Grupa: Zarejestrowani
Postów: 436
Pomógł: 6
Dołączył: 8.11.2003
Skąd: Szczecin

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


[php:1:83275f1a96]
<?php
if (!eregi("^[_.0-9a-z-]+@([0-9a-z][0-9a-z-]+.)+[a-z]+$",$mail)){
exit("Podany e-mail jest nieprawidłowy");
}
?>[/php:1:83275f1a96]
Go to the top of the page
+Quote Post
Widmo
post 25.05.2004, 21:58:59
Post #8





Grupa: Zarejestrowani
Postów: 136
Pomógł: 0
Dołączył: 25.05.2003

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


nie działa...

[php:1:a26f3494b6]<?php
if (!eregi("^[_.0-9a-z-]+@([0-9a-z][0-9a-z-]+.)+[a-z]+$",$HTTP_GET_VARS['odbiorca']))
{
echo "dupa";
//print("<META HTTP-EQUIV='Refresh' CONTENT='0; URL=../index.php?error=Podany e-mail jest nieprawidłowy!'>");
exit;
}

?>[/php:1:a26f3494b6]

sdkfj@afasf.pl dziala
widmo@q.pl nie...


--------------------
Widmo
Go to the top of the page
+Quote Post
Liko
post 25.05.2004, 22:02:14
Post #9





Grupa: Zarejestrowani
Postów: 436
Pomógł: 6
Dołączył: 8.11.2003
Skąd: Szczecin

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


Spróboj takiego wyrażenia: ^[^@ ]+@[^@ ]+.[^@ .]+$
Go to the top of the page
+Quote Post
zalew
post 25.05.2004, 22:04:45
Post #10





Grupa: Zarejestrowani
Postów: 407
Pomógł: 0
Dołączył: 24.10.2002
Skąd: warszawa

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


znalazlem cos takiego keidys i uzywam z powodzeniem.. sprawdza tez istnienie domeny...
[php:1:9a317afd33]<?php

function validate_email($email)
{

// Create the syntactical validation regular expression
$regexp = "^([_a-z0-9-]+)(.[_a-z0-9-]+)*@([a-z0-9-]+)(.[a-z0-9-]+)*(.[a-z]{2,4})$";

// Presume that the email is invalid
$valid = 0;

// Validate the syntax
if (eregi($regexp, $email))
{
list($username,$domaintld) = split("@",$email);
// Validate the domain
if (getmxrr($domaintld,$mxrecords))
$valid = 1;
} else {
$valid = 0;
}

return $valid;

}
?>[/php:1:9a317afd33]


--------------------
Go to the top of the page
+Quote Post
Widmo
post 25.05.2004, 22:09:46
Post #11





Grupa: Zarejestrowani
Postów: 136
Pomógł: 0
Dołączył: 25.05.2003

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


Dzięki Liko,
pomogło biggrin.gif

To jeszcze Was pomecze...

Jak daje:
[php:1:8bf8b832da]<?php
Z adresu IP: ".$ip." Oraz proxy? ".$proxy."
?>[/php:1:8bf8b832da]

I ktos sie laczy normalnie to dostaje wiadomosc:

Cytat
Z adresu IP: 62.121.121.9 Oraz proxy?


Ale jak laczy sie przez proxy, to sie odwracaja adresy :/

Cytat
Z adresu IP: 193.219.28.144 Oraz proxy? 62.121.121.9


--------------------
Widmo
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 Wersja Lo-Fi Aktualny czas: 23.06.2025 - 05:20