Проверка данных из формы на наличие @ (собаки)

The*cHEg
На сайте с 13.01.2008
Offline
53
1166

Привет всем!

Есть скрипт, который записывает данные, вводимые из html формы, в txt-файл:

<?php 

if (isset($_POST['mail']) && !empty($_POST['mail']))
{
$i = 0;
$bool = false;
$mail = strtolower(htmlspecialchars(trim($_POST['mail'])));

$array = file('dbmail.txt');

while($i < count($array))
{
if(trim($array[$i]) == $mail)
{
$bool = true;
break;
}
$i++;

}

if($bool == false)
{
$fp = fopen("dbmail.txt", "a"); // Открываем файл в режиме записи

$text = $mail . "\r\n"; // Исходная строка
$test = fwrite($fp, $text); // Запись в файл
if ($test)
{
echo '<div class="mess">Вы успешно зачисленны в клуб!</div>';
unset($_POST['mail']);
}
else
echo '<div class="mess">Ошибка при записи в файл dbmail.txt.</div>';
fclose($fp); //Закрытие файла
}
}

?>

Все бы ничего, но... Из этой формы я записываю email-адреса подписчиков, а скрипт записывает в файл любую информацию, введенную в нее. Так вот: помогите дописать код так, чтобы он проверял вводимое на наличие "@" и точки после нее.

Заранее спасибо!

TF-Studio
На сайте с 17.08.2010
Offline
334
#1

http://habrahabr.ru/post/108475/

Рекомендую

Всё ещё лучший способ заработка для белых сайтов: GoGetLinks (https://www.gogetlinks.net/?inv=fahbn8).
siv1987
На сайте с 02.04.2009
Offline
427
#2

if( !empty($_POST['mail']) && preg_match('/^[\w\d_\-.]+@[\w\d_\-.]+\.\w{2,8}$/i', $mail) )

---------- Добавлено 05.03.2013 в 00:00 ----------

if (isset($_POST['mail']) && !empty($_POST['mail'])) - заменить на строчку выше

M2
На сайте с 11.01.2011
Offline
341
#3

Не парьтесь так :)


$email = $_POST['email'];
$true_email = filter_var($email, FILTER_VALIDATE_EMAIL);

if (!$true_email)
die('Неправильный e-mail');

не пропустит ни одного неверного e-mail, тем более без собачки )

------------------- Крутые VPS и дедики. Качество по разумной цене ( http://cp.inferno.name/view.php?product=1212&gid=1 ) VPS25OFF - скидка 25% на первый платеж по ссылке выше
S
На сайте с 03.07.2009
Offline
41
#4

Уточнить надо только что для работы filter_var нужен PHP версии не ниже 5.2.0

Кодинг на PHP. Разработка расширений под Joomla.
siv1987
На сайте с 02.04.2009
Offline
427
#5

ПС

В условие $mail поменять на свою переменную - $_POST['mail']

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий