Цитата:
<?php
function show_form()
{
?>
<center><table cellspacing=0 cellpadding=0 border=0><form action="файл.php" method=post>
<tr><td valign=top><b>Ваше имя:</b></td><td>
<input type="text" name="name" size="65"></td></tr>
<tr><td valign=top><b>Телефон:</b></td><td>
<input type="text" name="tel" size="65"></td></tr>
<tr><td valign=top><b>Ваш email:</b></td><td>
<input type="text" name="email" size="65"></td></tr>
<tr><td valign=top><b>Сообщение:</b></td><td>
<textarea rows="10" name="mess" cols="30"></textarea></td></tr>
<tr><td colspan=2 align=right>
<center><input type="submit" value="Отправить" name="submit"></center></td></tr>
</form></table></center>
<?
$title="Сообщение";
}
function complete_mail() {
// $_POST['title'] содержит данные из поля "Тема", trim() - убираем все лишние пробелы и переносы строк, htmlspecialchars() - преобразует специальные символы в HTML сущности, будем считать для того, чтобы простейшие попытки взломать наш сайт обломались, ну и substr($_POST['title'], 0, 1000) - урезаем текст до 1000 символов. Для переменных $_POST['mess'], $_POST['name'], $_POST['tel'], $_POST['email'] все аналогично
$_POST['mess'] = substr(htmlspecialchars(trim($_POST['mess'])), 0, 1000000);
$_POST['name'] = substr(htmlspecialchars(trim($_POST['name'])), 0, 30);
$_POST['tel'] = substr(htmlspecialchars(trim($_POST['tel'])), 0, 30);
$_POST['email'] = substr(htmlspecialchars(trim($_POST['email'])), 0, 50);
// если не заполнено поле "Имя" - показываем ошибку 0
if (empty($_POST['name']))
output_err(0);
// если неправильно заполнено поле email - показываем ошибку 1
if(!preg_match("/[0-9a-z_]+@[0-9a-z_^\.]+\.[a-z]{2,3}/i", $_POST['email']))
output_err(1);
// если не заполнено поле "Сообщение" - показываем ошибку 2
if(empty($_POST['mess']))
output_err(2);
// создаем наше сообщение
$mess = '
Имя: '.$_POST['name'].'
Телефон: '.$_POST['tel'].'
E-mail: '.$_POST['email'].'
Сообщение: '.$_POST['mess'];
// $to - кому отправляем
$to = 'адрес_получателя';
// $from - от кого
$from='адрес_отправителя';
mail($to, $title, $mess, "From:".$from);
echo 'Сообщение отправлено';
}
function output_err($num)
{
$err[0] = '';
$err[1] = '';
$err[2] = '';
echo '<p>'.$err[$num].'</p>';
show_form();
exit();
}
if (!empty($_POST['submit'])) complete_mail();
else show_form();
?>
function show_form()
{
?>
<center><table cellspacing=0 cellpadding=0 border=0><form action="файл.php" method=post>
<tr><td valign=top><b>Ваше имя:</b></td><td>
<input type="text" name="name" size="65"></td></tr>
<tr><td valign=top><b>Телефон:</b></td><td>
<input type="text" name="tel" size="65"></td></tr>
<tr><td valign=top><b>Ваш email:</b></td><td>
<input type="text" name="email" size="65"></td></tr>
<tr><td valign=top><b>Сообщение:</b></td><td>
<textarea rows="10" name="mess" cols="30"></textarea></td></tr>
<tr><td colspan=2 align=right>
<center><input type="submit" value="Отправить" name="submit"></center></td></tr>
</form></table></center>
<?
$title="Сообщение";
}
function complete_mail() {
// $_POST['title'] содержит данные из поля "Тема", trim() - убираем все лишние пробелы и переносы строк, htmlspecialchars() - преобразует специальные символы в HTML сущности, будем считать для того, чтобы простейшие попытки взломать наш сайт обломались, ну и substr($_POST['title'], 0, 1000) - урезаем текст до 1000 символов. Для переменных $_POST['mess'], $_POST['name'], $_POST['tel'], $_POST['email'] все аналогично
$_POST['mess'] = substr(htmlspecialchars(trim($_POST['mess'])), 0, 1000000);
$_POST['name'] = substr(htmlspecialchars(trim($_POST['name'])), 0, 30);
$_POST['tel'] = substr(htmlspecialchars(trim($_POST['tel'])), 0, 30);
$_POST['email'] = substr(htmlspecialchars(trim($_POST['email'])), 0, 50);
// если не заполнено поле "Имя" - показываем ошибку 0
if (empty($_POST['name']))
output_err(0);
// если неправильно заполнено поле email - показываем ошибку 1
if(!preg_match("/[0-9a-z_]+@[0-9a-z_^\.]+\.[a-z]{2,3}/i", $_POST['email']))
output_err(1);
// если не заполнено поле "Сообщение" - показываем ошибку 2
if(empty($_POST['mess']))
output_err(2);
// создаем наше сообщение
$mess = '
Имя: '.$_POST['name'].'
Телефон: '.$_POST['tel'].'
E-mail: '.$_POST['email'].'
Сообщение: '.$_POST['mess'];
// $to - кому отправляем
$to = 'адрес_получателя';
// $from - от кого
$from='адрес_отправителя';
mail($to, $title, $mess, "From:".$from);
echo 'Сообщение отправлено';
}
function output_err($num)
{
$err[0] = '';
$err[1] = '';
$err[2] = '';
echo '<p>'.$err[$num].'</p>';
show_form();
exit();
}
if (!empty($_POST['submit'])) complete_mail();
else show_form();
?>
Скрипт для добавления в текстовую БД:
Цитата:
<?
//Добавление адреса в базу
if (isSet($_POST['email']))
{
$file = fopen('база.txt', 'a');
fwrite($file, "$_POST[email]\n");
fclose($file);
}
?>
//Добавление адреса в базу
if (isSet($_POST['email']))
{
$file = fopen('база.txt', 'a');
fwrite($file, "$_POST[email]\n");
fclose($file);
}
?>
У меня получалось так, что адрес добавляется, а письмо не отправляется.