Просмотр поста

.
ДоХтор

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?>