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

.
ДоХтор
# Scorpion (10.11.2015 / 22:21)
ДоХтор, А можно разделить на 2 файла, а то у меня php код в файле .tpl не ставится
Однако же я ошибался в своей теории на счёт универсальности кода: при разделении скрипта на два файла всё же пришлось немного код подправить. Прикрепляю архив, в нём два файла - form.php(html-форма) и addemail.php(обработчик формы). На счёт расширения *.tpl ничё не знаю. Но чтобы скрипт работал, у обеих файлов расширение должно быть *.php (если к примеру переименовать form.php на form.html - работать не будет). Для просмотра кода(без скачивания архива) пишу листинги
addemail.php (+/-)
<?php
 
/**
 * Данный копирайт - оплата за использование скрипта.
 * @Author ДоХтор
 * @E-mail drzoom@mail.ru
 **/

$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)) {
    if (empty($email)) {
        $refresh(2, $_SERVER['HTTP_REFERER']);
        echo '<b>Не введен e-mail!</b><br />';
    } elseif (preg_match('/[0-9a-z_\.\-]+@[0-9a-z_\.\-]+\.[a-z]{2,4}/i', $email) == false){
        $refresh(2, $_SERVER['HTTP_REFERER']);
        echo '<b>Некорректный ввод адреса e-mail!</b><br />';
    } else {
        $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['HTTP_REFERER']);
            echo 'Адрес <b>'. $email .'</b> успешно добавлен в каталог!<br />';
        } else {
            $refresh(2, $_SERVER['HTTP_REFERER']);
            echo  'Адрес <b>'. $email .'</b> уже есть в каталоге!<br />';
        }
    }
}
 
$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.php (+/-)
<?php require_once 'addemail.php' ?>
<?=$view?>
<form action="addemail.php" method="post">
    <input type="text" name="email" placeholder="Введите E-mail" />
    <input type="submit" value="Подписаться" />
</form>
Прикрепленные файлы: