Scorpion, в общем не дождавшись предпочтений я отдаю скрипт в виде кода.
Копир в шапке не удалять! (я знаю, о ваших намерениях)
В двух словах о возможностях. Скрипт проверяет на заполненность пОля, а так же на корректность введённого адреса, отслеживает ошибки, и при их наличии выводит уведомление на несколько секунд, а так же ведёт подсчёт адресов, хранящихся в текстовом файле, и выводит их количество вместе с их списком. Если этого покажется мало, то допиcывать буду уже за деньги.
Код универсален, то есть можно файл инклудить в другой файл, и вызывать результат его работы обращением к переменной
echo $view;.
addEmail.php (+/-)
<?php
/**
* Данный копирайт - оплата за использование скрипта.
* @Author ДоХтор
* @E-mail drzoom@mail.ru
**/
$view = '';
$filename = 'base.txt';
$refresh = function ($int, $url) {
header('Refresh: '. $int .'; url='. $url);
};
if (!file_exists($filename))
file_put_contents($filename, null);
$email = isset($_POST['email']) ? trim(htmlspecialchars($_POST['email'])) : '';
if (!empty($_POST)) {
$error = array();
if (empty($email)) {
$refresh(2, $_SERVER['PHP_SELF']);
$error[] = '<b>Не введен e-mail!</b><br />';
} elseif (preg_match('/[0-9a-z_\.\-]+@[0-9a-z_\.\-]+\.[a-z]{2,4}/i', $email) == false){
$refresh(2, $_SERVER['PHP_SELF']);
$error[] = '<b>Некорректный ввод адреса e-mail!</b><br />';
}
if (empty($error)) {
$array_email = file($filename);
$temp = array();
foreach ($array_email as $str_email) {
$temp[] = $str_email;
}
if (!in_array($email . PHP_EOL, $temp)) {
file_put_contents($filename, $email . PHP_EOL, FILE_APPEND | LOCK_EX);
$refresh(4, $_SERVER['PHP_SELF']);
$view = 'Адрес <b>'. $email .'</b> успешно добавлен в каталог!<br />';
} else {
$refresh(2, $_SERVER['PHP_SELF']);
$view = 'Адрес <b>'. $email .'</b> уже есть в каталоге!<br />';
}
} else {
$view = implode('<br />', $error);
}
}
$array_email = file($filename);
$all = sizeof($array_email);
if ($all == 0) {
$view .= 'Список пуст!<br />';
} else {
$view .= 'Список адресов: (всего: '. $all .' шт.)<br />';
foreach ($array_email as $str_email) {
$view .= $str_email .'<br />';
}
}
?>
<form action="<?=$_SERVER['PHP_SELF']?>" method="post">
<input type="text" name="email" value="<?=$email?>" />
<input type="submit" value="Подписаться" />
</form>
<?=$view?>
ДоХтор, Спасибо большое. Завтра проверю в работе
# Scorpion (10.11.2015 / 19:56)
И чтоб результат был выводился вверху формы))
Результат выводить можно где угодно - переставь <?=$view?> над формой, то есть так
<?=$view?>
<form action="<?=$_SERVER['PHP_SELF']?>" method="post">
<input type="text" name="email" value="<?=$email?>" />
<input type="submit" value="Подписаться" />
</form>
# Scorpion (10.11.2015 / 19:54)
ДоХтор, Спасибо большое. Завтра проверю в работе
Я на локалке его протестил на всё, что можно
ДоХтор, А можно разделить на 2 файла, а то у меня php код в файле .tpl не ставится
# Scorpion (10.11.2015 / 22:21)
ДоХтор, А можно разделить на 2 файла, а то у меня php код в файле .tpl не ставится
А что от чего надо отделить? PHP от HTML? Если да, то можно, только надо в форме написать путь к php-обработчику, а в php-обработчике в свою очередь, надо сделать редирект на файл с формой.
ДоХтор, Спасибо, я попробую)
ктож в здравом уме дает свой почтовый ясчик куда попало...
И не будет никакой базы точно...
Fublin, А чего бояться-то, спама? Так там есть гибкая система автоудаления
# ДоХтор (10.11.2015 / 23:38)
Fublin, А чего бояться-то, спама? Так там есть гибкая система автоудаления
Фублин о другом. Автор для чего-то хочет собрать база эмейлов. И по этому говорит, что кто будет в здравом смысле писать свой ящик куда попало. Но автору как я понял для рабочего сайта. Наверное для создания рассылок клиентам.