Валиден емайл
Здравейте на всички , който четат урока . В този урок ще ви покажа как да си направите функция с която да проверявате дали емайла съществува .

1-ва стъпка :

Стартираме фукнция примерно checkEmail

function checkEmail ( $email )
{
}



В тази функция имаме емайла,за всеки случай да я изчистим по следният начин :

$email = htmlspecialchars ( stripslashes ( strip_tags ( $email ) ) , ENT_QUOTES ) ;


2-ра стъпка:

Сега ще използваме eregi да проверим форматът на емайла , по принцип трябва да има букви,числа и маймунка ( @ ) и точките . Ето така примерно :

if ( eregi ( ' [ a-z||0-9 ] @ [ a-z||0-9 ] . [ a-z ] ', $email ) )
{
// останалият код тука ..
}
else
{
return false;
}


А какво ще стане ако има всички по-горе сменати атрибути ( точки , маймунка и т.н. ) ?
Пример: pesho042-myglata@izmislensait.adasj
- Ами ще проверим дали домейна съществува със fsockopen

if ( @fsockopen ( $domain [ 1 ] , 80, $errno, $errstr, 3 ) ) //Проверява дали може да се свърже със сървърът на порт 80
{
return true;
}
else
{
return false;
}


3-та стъпка:

Сега да съединим всичко в едно : [ functions.php ]

function checkEmail ( $email )
{
$email = htmlspecialchars ( stripslashes ( strip_tags ( $email ) ) , ENT_QUOTES ) ;
if ( eregi ( ' [ a-z||0-9 ] @ [ a-z||0-9 ] . [ a-z ] ', $email ) )
{
$domain = explode ( '@', $email ) ;
if ( @fsockopen ( $domain [ 1 ] , 80, $errno, $errstr, 3 ) )
{
return true;
}
else
{
return false;
}
}
else
{
return false;
}
}


Ето и един скрипт , който проверява емайла: [index.php]

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=windows-1251" />
<title>Валиден емайл</title>
</head>
<body>
<form action="<?php $_SERVER['PHP_SELF']; ?>" method="post">
<table border="0">
<tr>
<td>Е-майл:</td>
<td><input name="email" type="text" id="email" /></td>
</tr>
<tr>
<td> </td>
<td><input type="submit" name="Submit" value="виж" /></td>
</tr>
</table>
</form>
<?php
include("functions.php"); // проверката

if($_POST['Submit'])
{
if(checkEmail($_POST['email']))
{
echo "Има такъв емайл!";
}
else
{
echo "Няма такъв емайл адрес.";
}
}
?>
</body>
</html>


Надявам се да съм ви бил полезен :) .
Поздрави , Стоянски .



/ Трябва да сте регистриран за да напишете коментар /
От: Harry_Potter_
12:44 10-08-2010
Само една забележка:По принцип в email адресите може да има _ и . Други символи освен тия не знам да са позволени.Не е зле да си поправиш кода за да не се чуди някой потребител защо като се опита да въведе емейл от рода на "bay_bradur@na6toselo.com" :) Иначе добър урок
1