# Flash (10.11.2015 / 23:41)
Фублин о другом. Автор для чего-то хочет собрать база эмейлов. И по этому говорит, что кто будет в здравом смысле писать свой ящик куда попало. Но автору как я понял для рабочего сайта. Наверное для с
А, ну я этих нюансов не уточнял...
# 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>
# Flash (10.11.2015 / 23:41)
Фублин о другом. Автор для чего-то хочет собрать база эмейлов. И по этому говорит, что кто будет в здравом смысле писать свой ящик куда попало. Но автору как я понял для рабочего сайта. Наверное для с
Ну это для официального сайта нашей компании, просто новости будем рассылать
ДоХтор, Почему require_once 'addemail.php' если форма передает в addemail.php
В tpl, php можно писать через <?php код ?>
ДоХтор, Я завтра сначала посмотрю, если не получится каждую строчку php придется в <?php прописать ?>
# Scorpion (11.11.2015 / 01:39)
ДоХтор, Я завтра сначала посмотрю, если не получится каждую строчку php придется в <?php прописать ?>
Нет, обработчик трогать не придётся я думаю, а вот форму может быть подкорректируем.
ДоХтор, Спасибо большое.. Завтра отпишусь
# Scorpion (11.11.2015 / 01:35)
ДоХтор, Почему require_once 'addemail.php' если форма передает в addemail.php
В tpl, php можно писать через <?php код ?>
У тебя MVC там или шаблонизатор? Или и то и другое? Или откуда .tpl ?
Тогда форма - это твое представление, а обработчик - контроллер.