overenie existencie mailu
overenie existencie mailu
da sa nejako v php overit ci nejaky mail existuje ? napr. do formulara zadam mail a ked dam tlacitko registrovat a mail neexistuje tak mi to vypise
-
mastermind
VIP
- Príspevky: 4810
- Registrovaný: 09 feb 2005, 13:17
... a to takto
Kód: Vybrať všetko
function validemail($email) {
return preg_match('/^[\w.-]+@([\w.-]+\.)+[a-z]{2,6}$/is', $email);
}akože nie, jednoduchou podmienkou to môže predsa vypísať,mastermind napísal:nie, vies iba skontrolovat ci bola zadana validna mailova adresa. teda ci zadany retazec splna normnu RFC XXXX
napr.
if (empty($_POST[mail])) { echo "nezadal si email";}
za správnosť zápisu neručím, ale nejak takto by to mohlo byť,
samozrejme treba zabezpečiť, aby sa ti takýto formulár neodoslal,
na to môžeš použiť podobnú podmienku, kde uvedieš všetky položky ktoré odosielaš, ale aj tak si myslím, že vhodnejšie je na to použiť JS, ktorý ti tú kontrolu urobí ešte u teba a nie až na servery (v prípade php)
-
Kosh
King
- Príspevky: 1835
- Registrovaný: 09 jún 2005, 13:10
- Bydlisko: Za okrajom galaxie
- Kontaktovať používateľa:
Re: overenie existencie mailu
neda saneppo napísal:da sa nejako v php overit ci nejaky mail existuje ? napr. do formulara zadam mail a ked dam tlacitko registrovat a mail neexistuje tak mi to vypise
re:
a co toto
nasiel som to tu
nech sa vyjadria znalejsi, ja s php len zacinam..
Kód: Vybrať všetko
<?
/*
By: Jon S. Stevens [email protected]
Copyright 1998-1999 Jon S. Stevens, Clear Ink
This code has all the normal disclaimers.
It is free for any use, just keep the credits intact.
*/
function validateEmail ( $email )
{
global $SERVER_NAME;
$return = array ( false, "" );
list ( $user, $domain ) = split ( "@", $email, 2 );
$tld = $domain;
if ( checkdnsrr ( $tld, "MX" ) )
{
if ( getmxrr ( $tld, $mxhosts, $weight ) )
{
for ( $i = 0; $i < count ( $mxhosts ); $i++ )
{
$fp = fsockopen ( $mxhosts[$i], 25 );
if ( $fp )
{
$s = 0;
$c = 0;
$out = "";
set_socket_blocking ( $fp, false );
do
{
$out = fgets ( $fp, 2500 );
if ( ereg ( "^220", $out ) )
{
$s = 0;
$out = "";
$c++;
}
else if ( ( $c > 0 ) && ( $out == "" ) )
{ break; }
else
{ $s++; }
if ( $s == 9999 ) { break; }
} while ( $out == "" );
set_socket_blocking ( $fp, true );
fputs ( $fp, "HELO $SERVER_NAME\n" );
$output = fgets ( $fp, 2000 );
fputs ( $fp, "MAIL FROM: <info@" . $tld . ">\n" );
$output = fgets ( $fp, 2000 );
fputs ( $fp, "RCPT TO: <$email>\n" );
$output = fgets ( $fp, 2000 );
if ( ereg ( "^250", $output ) )
{
$return[0] = true;
}
else
{
$return[0] = false;
$return[1] = $output;
}
fputs ( $fp, "QUIT\n" );
fclose( $fp );
if ( $return[0] == true )
{ break; }
}
}
}
}
return $return;
}
?>
Kód: Vybrať všetko
http://www.inspired.sk/php/kontrola-existencie-e-mailu/