Эротические торты 18+
СОДЕРЖАНИЕ
 
ГОСТЕВАЯ
 
ГЕНЕРАТОР
 
ССЫЛКИ
 
Второй пример по сути дублирует первый. Просто мы добавили несколько новых полей в форму, добавили проверку данных и оформили все в виде функций php. Комментарии в коде должны лишить Вас вопросов, но если что - спрашивайте ;-)
<?php
function show_form()
{
?>
<form action="" method=post>
<div align="center">
              <br />Имя*<br />
              <input type="text" name="name" size="40">
              <br />Контактный телефон<br />
              <input type="text" name="tel" size="40">
              <br />Контактный email*<br />
              <input type="text" name="email" size="40">
              <br />Teма<br />
              <input type="text" name="title" size="40">
              <br />Сообщение*<br />
              <textarea rows="10" name="mess" cols="30"></textarea>
              <br /><input type="submit" value="Отправить" name="submit">
</div>
</form>
* Помечены поля, которые необходимо заполнить
<?
}

function
complete_mail() {
        
// $_POST['title'] содержит данные из поля "Тема", trim() - убираем все лишние пробелы и переносы строк, htmlspecialchars() - преобразует специальные символы в HTML сущности, будем считать для того, чтобы простейшие попытки взломать наш сайт обломались, ну и  substr($_POST['title'], 0, 1000) - урезаем текст до 1000 символов. Для переменных $_POST['mess'], $_POST['name'], $_POST['tel'], $_POST['email'] все аналогично
        
$_POST['title'] =  substr(htmlspecialchars(trim($_POST['title'])), 0, 1000);
        
$_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'].'
Контактный email:'
.$_POST['email'].'
'
.$_POST['mess'];
        
// $to - кому отправляем
        
$to = 'test@test.ru';
        
// $from - от кого
        
$from='test@test.ru';
        
mail($to, $_POST['title'], $mess, "From:".$from);
        echo
'Спасибо! Ваше письмо отправлено.';
}

function
output_err($num)
{
    
$err[0] = 'ОШИБКА! Не введено имя.';
    
$err[1] = 'ОШИБКА! Неверно введен e-mail.';
    
$err[2] = 'ОШИБКА! Не введено сообщение.';
    echo
'<p>'.$err[$num].'</p>';
    
show_form();
    exit();
}

if (!empty(
$_POST['submit'])) complete_mail();
else
show_form();
?>
« первый пример, самый простой третий пример - подкрепляем файлы и изображения - отправка почты на php »


Ниже Вы можете пофлудить - можете спросить, обругать, похвалить и т.д.

Добавление комментариев отключено


30.11.2013   wolfram

у меня все классно работает спасибо админку. Но возник один вопрос как сменить тут кодировку? Сообщения доходят но там все криво написано. За ранее спасибо



25.10.2013   Mavrin

у меня выдаёт часть кода на с транице как обычный текст



18.09.2013   Олег

Возникла надобность разместить несколько форм на странице.
Разместил, все формы работают, пришлось только изменить названия функций function show_form и function complete_mail, отправка работает. Но возникли вопросы: после отправки письма из первой / или другой / формы, сообщение пишется на месте формы, что терпимо, но происходит обрезка страницы по начало второй формы, т.е. до второй записи <form action="" method=post>. И вроде всё работает, но при этом страница испорчена. Вынести блок сообщения "Ваше сообщение успешно отправлено" во всплывающее окно не получается. Да код выглядит следующим образом ( "лишнее вырезал из этого сообщения" ):

<?
error_reporting(0);
function show_form2()
{
$_SESSION['code'] = rand(1000, 9999);
?>
<form action="" method=post>

<input type="text"><input type="hidden" name="check[]" value="1">
<input type="text"><input type="hidden" name="check[]" value="1">
<input type="text"><input type="hidden" name="check[]" value="1">

<input type="submit" value="Оставить заявку" name="submit" >
</form>
<?
}
function complete_mail2() {
...
// подключаем файл класса для отправки почты
...

if($sendemail != 'No'){
// отправляем наше письмо
if (!$mail->Send()) die ('Mailer Error: '.$mail->ErrorInfo);
echo '<p style="text-align:center; font-size:18px; color:#fff; padding:5px; margin:40px 0 0 0;"><b>Ваше сообщение успешно отправлено.</b>
</p>
';
}
}
if (!empty($_POST['submit'])) complete_mail2();
else show_form2();
?>

Может кто реализовал такое или выводил сообщение во всплывающее окно со скриптом fancybox или другим.



29.07.2013   Ден

на локальном сервере работает а в инете точно так ток чёт на указанный емеил не приходит сообщение в чём может быть проблема?



23.01.2013   Виталий

Спасибо огромное, все просто и все работает. Автор! ДАй Бог тебе здоровья :)



21.11.2012   Иван

отправляется письмо, но не приходит, что делать?
вот скрипт:
ini_set('display_errors', 1);
error_reporting(E_ALL);
ini_set("SMTP", "localhost");
ini_set("smtp_port", "25");
$send_mail = mail("$mail", "smart responder","text","From: Web Master");
if ($send_mail == true){echo "Письмо успешно отправлено!";}else {echo("Письмо не отправлено, попробуйте снова!");}

на почту, указанную как переменная $mail не приходит ни в каком виде :((



09.11.2012   Guest

1. Плохо проверяете e-mail. Адрес может содержать дефисы, точки, домен может быть длиннее 3х символов, например info, travel, уже не говоря про многоуровневые com.ru

2. empty ('0') вернёт true

3. Если вот так обрезаете текст, неплохо бы сообщить пользователю об этом и вести отсчёт оставшихся символов при вводе

4. Вот так выводить ответ сразу вместо header ('Location') не лучший способ.



27.09.2012   Евгений

Здравствуйте! У меня форма находится в html документе, я хочу php обработчик в отдельном файле чтобы был. Какой тогда код будет? И ещё немогу понять -
// $from - от кого
$from='test@test.ru';
что значит от кого? Это с моего сайта. Что тут писать? Спасибо!



14.09.2012   Евгений

Здравствуйте !
Я только учусь и возможны ошибки.
я написал такой код, но не хочу чтобы данные заполненные гостем в форму в гостевой книге возвращались обратно на страницу гостевой книги, а хочу чтобы информация попадала
на мой мэйл.
Помогите пожалуйста, желательно с объяснениями.
За ранее огромнейшее СПАСИБО
<?
if(isset ($_GET["add"]))
{
$user=$_GET["user"];
$email=$_GET["email"];
$msg=$_GET["msg"];
mysql_connect("localhost", "root", "");
mysql_select_db("gb");
$q="INSERT INTO gb (user, email, msg, mdate)
VALUES ('".$user."', '".$email."', '".$msg."', NOW())";
}
mysql_query($q);

?>

<form name="form1" action="#" method="get">
&nbsp Ф. И. О. : <input type="text" name="user" size="35"
maxlenght="55"><br><br> &nbsp
E-mail : &nbsp &nbsp <input type="text" name="email" size="35"
maxlenght="55"><br><br> &nbsp Ваше сообщение : <br>
&nbsp &nbsp <textarea name="msg" cols="60" rows="20"></textarea><br><br>
&nbsp &nbsp <input type="submit" name="add">
<input type="hidden" name="page" value="gb">
</form>

<?
$q="SELECT*FROM gb ORDER BY id DESC";
$result=mysql_query($q);
echo "<table border=1>";
while($row=mysql_fetch_array($result))
{
?>
<tr>
<td><? echo $row["user"];?></td>
<td><? echo $row["mdate"];?></td>
</tr>
<tr>
<td colspan=2><? echo $row["email"];?></td>
</tr>
<tr>
<td colspan=2><? echo $row["msg"];?></td>
</tr>
<tr><td height=20></td></tr>
<?
}
echo "</table>";
?>



10.07.2012   Sky Angel

Спасибо за форму работает отлично. Прикрутил предзаполнение, все прекрасно. Но возникла такая проблема, в оригинале после отправки письма, выводится текст вместо формы, но у меня после отправки письма форма остается и под формой появляется текст. Это как я понимаю из-за предзаполнения формы, из-за обращения к базе. Подскажите как мне правильно вставить запрос к базе чтобы не потерять функционал формы.



21.06.2012   Ксения

ПРОСТИТЕ А ВЫ НЕ ПОДСКАЖИТЕ КАК E-MAIL ОТПРАВИТЕЛЯ ПИСЬМА АВТОМАТИЧЕСКИ ПОПАДАЛ СЮДА // $from - от кого
$from='test@test.ru';


21.06.2012   Александр

$from = 'test@test.ru';
замените на
$from = $_POST['email'];



15.03.2012   Виталий

Спасибо Друг!
Как доберусь до своего сайта, обязательно выложу твои скрипты, с ссылкой естно)



07.03.2012   Serjke

Почему-то не работает. Письмо не приходит и все тут. Делал и на денвере, и на платном хостинге - хоть бы хны.



22.01.2012   Юрий

А как вместо стандартной кнопки input поставить свою, но так, чтобы она проверяла данные, введенные в форму, т.е. работала как input


22.01.2012   Александр

Ставьте любую кнопку, а у этой type="submit" замените на type="hidden"



29.12.2011   Евгений

Это уже из-за настроек ящика-пиемника. Там спам робот настраивается.



07.11.2011   Ученик

А можно как-нить сделать чтобы не в спам приходило?



11.05.2011   Роман

// $to - кому отправляем
$to = 'test@test.ru';
// $from - от кого
$from='test@test.ru';
Написал я все как здесь написано. Не фига не отправляется. Создал почту на хостинге через cPanel. Через интерфейс почтовика отправляется, а здесб не хочет



07.05.2011   Aleks

мдааа... глухо тут....
такая просьба... если кто то, когда то прочтет моё сообщение и сможет дать реальный ответ, пожалуйста отпишите на почту domenic17[a]rambler.ru
Благодарю.



25.04.2011   Aleks

форма очень удобная и полезная! и за это большое спасибо автору!!!
только один вопрос: подскажите как подключить этот скрипт к своей форме у себя на сайте как отдельный файл-php?
с html у меня все в порядке, а вот по php почти нет знаний...
p.s. форма такая же, с четырьмя полями.


25.04.2011   Aleks

прочитал все комнтарии и кое-что стало более понятно...
тогда объясните, как мне вставить в этот скрипт свою html-cтраничку с формой, то есть не нарушая своего дизайна?


29.04.2011   Aleks

ну же друзья, подскажите как это возможно сделать?


08.08.2011   romash

в iframe или в подобном


07.01.2012   Женёк

Например у меня так:
<center>
<IFRAME SRC="mail.php" WIDTH="90%" HEIGHT="300" NAME="iframe" SCROLLING="auto" FRAMEBORDER=1>
</IFRAME></center>



21.04.2011   Skobkin.ru

www.php-mail.ru/?id=3
<br>Здесь не совсем корректный пример:
<br>&gt; preg_match(\&quot;/[0-9a-z_]+@[0-9a-z_^\\.]+\\.[a-z]{2,3}/i\&quot;, $_POST[\'email\'])
<br>Существуют доменные зоны .mobi, .info и т.д., здесь же принимаются зоны из 2 и 3 символов.



19.04.2011   Галя

Ничего не получается у меня на сайте. Отвечать не надо. Лучше сразу удалить.


06.02.2013   Владислав

Ну и не лезь тогда, раз не получается



19.04.2011   Галя

Ничего не получается у меня на сайте



18.04.2011   Андрей

Доброго времени суток. Помогите пожалуйста с решением данной проблемы. Есть форма на сайте, который я делаю сам (из шаблона, я не программист) и там есть форма для отправки сообщения. Какой код *.php мне необходимо загрузить на хостинг, что бы всё это дело заработало???
Весь интернет уже облазил... что то сложная задача оказалась:( Помогите пожалуйста.

<form id="form1" action="" enctype="multipart/form-data">
<div class="container">
<div class="fleft" style="width:284px;">
<div class="form">
<input name="text" type="text" value="&nbsp;Имя:" />
</div>
<div class="form">
<input name="text" type="text" value="&nbsp;E-mail:" />
</div>
<div class="form">
<input name="text" type="text" value="&nbsp;Телефон:" />
</div>
<div class="form" style="height:33px;">
<input name="text" type="text" value="&nbsp;Адрес:" />
</div>
</div>
<div class="fleft" style="width:289px;">
<textarea name="textarea" cols="20" rows="20">&nbsp;Вопрос:</textarea>
</div>
<div class="clear"></div>
<div class="alignright" style="margin-right:4px;"><a class="link5" href="#" onclick="document.getElementById('form1').reset()">очистить</a> &nbsp; &nbsp; <a class="link5" href="#" onclick="document.getElementById('form1').submit()">отправить</a></div>


26.04.2011   PACIFIST

Вот эта разметка, которая у Вас - это по сути функция show_form() из статьи. То есть заменить нужно вот этот черный текст в функции Вашим. Это для того, чтобы выглядело как у Вас. Дальше проверить чтобы в полях input параметр name соответствовал тем, что в статье ( это названия переменных). Ну и вставить все остальное из статьи. Только вот сдается мне, что там еще есть код у Вас, который обрабатывает то, что пришло из формы



21.03.2011   Некто

А вот если заменить обычную кнопку type=\&quot;submit\&quot; на красивую type=\&quot;image\&quot;, то ничего не работает, как с этим бороться не подскажите?


21.03.2011   Александр

type="image" name="submit"


21.03.2011   некто

Не работает, я пробовал так уже, пашет почему то только если type="submit"

<span class="txt-stl3">
<?php
function show_form() {
?>
</span> </div>
<form action="" method=post>
<div align="center">
<input name="email" type="text" value="" size="25" />
<input type="image" src="img/submit-but.jpg" name="submit">
</div>
</form>
<?
}

function complete_mail() {
$_POST['title'] = "Сообщение с сайта: Перезвоните мне!";
$_POST['email'] = substr(htmlspecialchars(trim($_POST['email'])), 0, 30);
if (empty($_POST['email']))
output_err(1);
$mess = '
Перезвоните на номер: '.$_POST['email'].'
'.$_POST['mess'];
$to = 'order@vizplast.ru';
$from='Site VIZplast TEST';
$subject = "Сообщение с интернет сайта VIZplast";
$header="Content-type: text/plain; charset=\"windows-1251\"";
$header.="Subject: $subject";
$header.="Content-type: text/plain; charset=\"windows-1251\"";
mail($to, $_POST['title'], $mess, $header);
echo 'Спасибо! Ваше письмо отправлено.';
}

function output_err($num)
{
$err[1] = 'ОШИБКА! Неверно введен телефон!';
echo '<p>'.$err[$num].'</p>';
show_form();
$tmp = file_get_contents( 'MyDesign.htm' );
echo ( $tmp );
exit();
}

if (!empty($_POST['submit'])) complete_mail();
else show_form();
?>

код корявый так как работаю ещё над ним...


21.03.2011   Александр

Попробуйте
<input type="image" src="img/submit-but.jpg" name="submit">
Заменить на
<input type="image" src="img/submit-but.jpg"><input type="hidden" value="1" name="submit">


21.03.2011   Некто

Александр, спасибо Вам, помогло. Я так понимаю тут хитрость военная использована была.. Если не сложно объясните в двух словах...


21.03.2011   Александр

А нет там никаких хитростей.
У нас форма обрабатывается при условии, что в переменной submit что-то есть:
if (!empty($_POST['submit']))

Когда <input type="submit" value="Отправить" name="submit"> меняем на type="image", почему-то про value="Отправить" и name="submit" забываем. Как вариант, можно передать это значение в скрытом input


21.03.2011   Александр

Наверное и <input type="image" src="img/submit-but.jpg" name="submit" value="1"> сработает ;-)


21.03.2011   Некто

Да-да, про value я совсем позабыл, ещё раз спасибо!



07.03.2011   Женя

Ну есть же на свете добрые люди! Спасибо Вам за проделанный труд.



24.02.2011   Фёдор

Спасибо ОГРОМНОЕ!!! Такая помощь крутая!!! Я 2 дня по интернету лазал, не мог найти нормальной формы, а тут всё отлично работает! Я очень благодарен тому кто всё это выложил на сайте! Счастья Вам, здоровья и достатка!!!



21.02.2011   Максим

Ситуация следующая.

Настроил публикацию через email на своем блоге, однако зачастую приходится публиковать помимо текста еще и галереи.
В оболочке WordPress я это делаю через код.
Через email публикацию пытаюсь сделать тоже самое:

Пример:
<a href="site.ru/?p=1935"><img src="site.ru/wp-content/uploads//111/01.jpg" " width="288" height="432" /></a>
<!--more-->
<img src="site.ru/wp-content/uploads//111/02.jpg" />
<img src="site.ru/wp-content/uploads//111/03.jpg" />и т.д.

Пост при отправке на email появляется, однако в только в виде текста, что как сами понимаете мне не особо нужно :)

Так же возникает проблема с автоматической подгрузкой seo title, description, keywords при email публикации, как это сделать не понимаю категорически, что конкретно нужно прописать в отправляемом письме чтобы необходимые мне seo title, description, keywords автоматически подгружались к посту.

Спасибо заранее за помощь.


21.02.2011   Александр

http:// гостевая отрезала или у Вас в с сайта отправляется так?

<img src="http://site.ru/wp-content/uploads//111/02.jpg" />
А в целом, посмотрите следующий пример. Там ведь можно письма на html составлять.



19.02.2011   Александр

А это полностью рабочий вариант, доведенный до совершенства, опробованный в течении 4 лет, никакого спама, нужно только поменять мыло, классы отображения(css) у кого что и подвал, ноги, footer итд

<p class="text">

<?php
function show_form()
{
?>
<form action="" method=post>
<div align="center">
<br /><p class="text">Имя*<br />
<input type="text" name="name" value="<?=substr(htmlspecialchars(trim($_POST['name'])), 0, 100);?>" size="50">
<br />Контактный телефон<br/>
<input type="text" name="tel" value="<?=substr(htmlspecialchars(trim($_POST['tel'])), 0, 100);?>" size="50">
<br />Контактный email*<br/>
<input type="text" name="email" value="<?=substr(htmlspecialchars(trim($_POST['email'])), 0, 100);?>" size="50">
<br />Teма<br />
<input type="text" name="title" value="<?=substr(htmlspecialchars(trim($_POST['title'])), 0, 100);?>" size="50">
<br />Сообщение*<br />
<textarea rows="10" name="mess" cols="38"><?=substr(htmlspecialchars(trim($_POST['mess'])), 0, 1000000);?></textarea>
<br /><input type="submit" value="Отправить" name="submit">
</div>
</form> <p class="text">
* Помечены поля, которые необходимо заполнить
<?
}

function complete_mail() {
// $_POST['title'] содержит данные из поля "Тема", trim() - убираем все лишние пробелы и переносы строк, htmlspecialchars() - преобразует специальные символы в HTML сущности, будем считать для того, чтобы простейшие попытки взломать наш сайт обломались, ну и substr($_POST['title'], 0, 1000) - урезаем текст до 1000 символов. Для переменных $_POST['mess'], $_POST['name'], $_POST['tel'], $_POST['email'] все аналогично
$_POST['title'] = substr(htmlspecialchars(trim($_POST['title'])), 0, 1000);
$_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'].'
Контактный email:'.$_POST['email'].'
'.$_POST['mess'];
// $to - кому отправляем
$to = 'здесь пишем мыло куда отправлять типа test@mail.ru';
// $from - от кого
$from=$_POST['email'];
$headers = 'From: '.$from ."\r\n".
'Content-type: text/plain; charset="windows-1251"' . "\r\n";
mail($to, $_POST['title'], $mess, $headers);
echo '<p class="text" align="center"> Cпасибо! Ваше письмо отправлено.</p>';


}
function output_err($num)
{
$err[0] = '<p class="textred" align="center">ОШИБКА! Не введено имя.</p>';
$err[1] = '<p class="textred" align="center">ОШИБКА! Неверно введен e-mail.</p>';
$err[2] = '<p class="textred" align="center">ОШИБКА! Не введено сообщение.</p>';
echo '<p>'.$err[$num].'</p>';
show_form();
echo '</p>

</td>
</tr>
</table>




</td>
</tr>
</table>


<table width="100%" border="0" CELLPADDING=0 CELLSPACING=0 height="30">
<tr align="center" bgcolor="#15336e">
<td>
<a href="index.html" class="menufut">ГЛАВНАЯ</a> <a class="menu">|</a>
<a href="company.html" class="menufut">О КОМПАНИИ</a> <a class="menu">|</a>
<a href="uslugi.html" class="menufut">УСЛУГИ</a> <a class="menu">|</a>
<a href="contact.html" class="menufut">КОНТАКТЫ</a> <a class="menu">|</a>
<a href="vopros.php" class="menufut">ЗАДАЙТЕ ВОПРОС</a>

</td>


</tr>
</table>

<table cellspacing="2" cellpadding="2" border="0" width="100%" height="25">
<tr>
<td align="right">
<font face="Arial" color="#616161" size="1">автор сайта</font>
</td>
</tr>
</table>

</BODY>
</HTML>';
exit();
}

if (!empty($_POST['submit'])) complete_mail();
else show_form();
?>


</p>

</td>
</tr>
</table>




</td>
</tr>
</table>


<table width="100%" border="0" CELLPADDING=0 CELLSPACING=0 height="30">
<tr align="center" bgcolor="#15336e">
<td>
<a href="index.html" class="menufut">ГЛАВНАЯ</a> <a class="menu">|</a>
<a href="company.html" class="menufut">О КОМПАНИИ</a> <a class="menu">|</a>
<a href="uslugi.html" class="menufut">УСЛУГИ</a> <a class="menu">|</a>
<a href="contact.html" class="menufut">КОНТАКТЫ</a> <a class="menu">|</a>
<a href="vopros.php" class="menufut">ЗАДАЙТЕ ВОПРОС</a>

</td>


</tr>
</table>

<table cellspacing="2" cellpadding="2" border="0" width="100%" height="25">
<tr>
<td align="right">
<font face="Arial" color="#616161" size="1">автор сайта</font>
</td>
</tr>
</table>

</BODY>
</HTML>



19.02.2011   Александр

Бывает очень неприятно, когда заполняешь все поля пишешь сообщение, а в результате ошибки все стирается, поэтому в форму значения нужно добавить, также и в поле текста не помешает

value="<?=substr(htmlspecialchars(trim($_POST['name'])), 0, 100);?>"

<textarea rows="10" name="mess" cols="38"> (вот сюда) <?=substr(htmlspecialchars(trim($_POST['text'])), 0, 100);?> </textarea>

сам скрипт формы

<form action="" method=post>
<div align="center">
<br /><p class="text">Имя*<br />
<input type="text" name="name" value="<?=substr(htmlspecialchars(trim($_POST['name'])), 0, 100);?>" size="50">
<br />Контактный телефон<br/>
<input type="text" name="tel" value="<?=substr(htmlspecialchars(trim($_POST['tel'])), 0, 100);?>" size="50">
<br />Контактный email*<br/>
<input type="text" name="email" value="<?=substr(htmlspecialchars(trim($_POST['email'])), 0, 100);?>" size="50">
<br />Teма<br />
<input type="text" name="title" value="<?=substr(htmlspecialchars(trim($_POST['title'])), 0, 100);?>" size="50">
<br />Сообщение*<br />
<textarea rows="10" name="mess" cols="38"></textarea>
<br /><input type="submit" value="Отправить" name="submit">
</div>
</form> <p class="text">



19.02.2011   Александр

кстати писал здесь об одной проблеме, многие могут столкнуться, письма с сайта могут приходить не от адреса отправителя, а от адреса служебного е-майла на хостинге, и вследствии этого, если автоматом ответить, то письмо не уйдет отправителю, долго мучался, но проблема не в скрипте, а на хостинге, вобщем у кого как, нужно подтвердить, что майл на который шлют письма (в управлении панели хостинга) является или его сделать доверенным, что-то вроде этого, такая проблема у меня возникла на nic.ru, и сами специалисты с nic.ru мне помогли и после этого тема письма стала встраиваться в тему почтового клиента, а до этого она была отдельно, а там была какая-то абракадабра, так что у коо хостинг на nic.ru учтите этот момент, автору спасибо



19.02.2011   Александр

автору респект, 4 года назад использовал этот скрипт, лучшего не нашел, отдавал тестить сисадмину, косяков не нашел пробовали вскрыть разными способами, без вариантов и сейчас понадобился опять зашел сюда, естественно под каждый сайт требует индивидуальной хтмлной доработки, но сам скрипт работает безупречно



18.02.2011   Игорь

Ошибка выскакивает если имейл 1-2 символа



08.02.2011   Андрей

всё гениальное просто, афтару респет



26.12.2010   Альфред

Большое спасибо создателю сайта! Вставил Ваш второй пример в свой сайт-всё прекрасно работает! Счастья, здоровья и долгих лет плодотворной жизни. Больше бы таких людей как Вы и коммунизм бы построили.



23.12.2010   webprog26

Огромное спасибо автору!



22.12.2010   Rosso

всем спасибо, я уже сам разобрался)))



22.12.2010   Rosso

кстати, на локальном хостинге все отлично



22.12.2010   Rosso

Помогите неучу)))я сделал все как надо, письмо отправляется, приходит на мыло. только вот изображение фото не показывает( пустая рамка с надпись изображение). Я понимаю, что-то с кодировкой. только вот где её менять не знаю. помогите люди добрые!))



24.11.2010   Bars

По-уму, надо при проверке заголовка, телефона и т.п. сначала substr делать, а уже потом htmlspecialchars, потому как какую-нибудь народом любимую кавычку «"» php возьмет и перевоплатит в «&quote;».

Отсюда две ошибки: обрезаемая сторока уже увеличивается на 6 символов, что сокращает саму строку, да еще и если обрезка придется на этот псевдоним, то в конце текста вместо нужного символа будет валяться вовсе не многим известный текст (что-нибудь вроде «&quo»), который ломает глаз всем..

ps теперь понял, откуда берутся такие ошибки..
pps надеюсь, здесь я правильно сделал, что не заменял «&» в начале псевдонимов на «&amp;»



23.11.2010   Павел

А вот меня интересует такой вопрос.
Если я хочу чтобы все эти сообщения приходили ТОЛЬКО от зарегестрированых юзеров на FLYSPRAY под их никами, и когда я даю им ответ чтобы отсылалось им на мыло и на форумную почту, то что мне нужно сделать для этого?



19.10.2010   Adasay

расскажите подробнее об адресах отправки)..ПОЖАЛУЙСТА



08.09.2010   Алексей_нуб

Может кто нить объяснить, какие средства нужны чтобы данный код заработал, а то я вставляю всё в файл .php запускаю в браузер и ничего не происходит.


19.09.2010   vg

У себя на локальной машине? Тогда нужно установить web-сервер и интерпритатор php. Хорошо подойдёт denwer.ru



03.09.2010   Ангтон

проблема.
если поля заполнены - то письмо отправляется всё гут.
если ворму не заполнили и нажали отправить дает сообщение об ошибке, выводит снова форму, а вот нижнюю часть мою (футер короче) не выводит. Кто поможет что сделать надо? спасибо


19.02.2011   Александр

$err[0] = 'ОШИБКА! Не введено имя.';
$err[1] = 'ОШИБКА! Неверно введен e-mail.';
$err[2] = 'ОШИБКА! Не введено сообщение.';
echo '<p>'.$err[$num].'</p>';
show_form();
exit();

после show_form(); это выдача о ошибке
нужно вставить
echo 'скрипт твоего подвала, футер или что там у тебя';
короче, все что после выполнения скрипта


21.03.2011   Дмитрий

А если форма прямо в середине страницы , а снизц там целый самосвал скритпов, таблиц и чего ток нет... как тогда быть?


21.03.2011   Дмитрий

В общем то сам спросил сам отвечу =) Во-первых не туда пихнул echo в начале.. а всё остальное запихалось в
echo <<<END
****
END;

Автору спасибо за скрипт!



03.09.2010   начинающий

выдает сообщение - что не так - что изменить -спасибо
Warning: mail(): Failed to connect to mailserver at "localhost" port 25, verify your "SMTP" and "smtp_port" setting in php.ini or use ini_set() in E:\Rooms\u219446\rfsklad.ru\www\otziv.php on line 58 Спасибо! Ваше письмо отправлено.



03.09.2010   Лёвушка

Спасибо, все работает замечательно. Но есть проблема, в outlook или express сообщения приходят с неправильной кодировкой, причем галочки стоят везде где надо. Вообщем не подскажете как бороться с этой бедой, что бы такого интересного добавить в код, чтоб голова не болела и все читалось правильно. Спасибо



04.08.2010   Пожалуйста посмотрите,что

&lt;?php
<br>// если была нажата кнопка \&quot;Отправить\&quot;
<br>if($_POST[\'submit\']) {
<br>// $_POST[\'city\'] содержит данные из поля \&quot;Город\&quot;, trim() - убираем все лишние пробелы и переносы строк, htmlspecialchars() - преобразует специальные символы в HTML сущности, будем считать для того, чтобы простейшие попытки взломать наш сайт обломались, ну и substr($_POST[\'city\'], 0, 1000) - урезаем текст до 1000 символов. Для переменной $_POST[\'mess\'] все аналогично
<br>$city = substr(htmlspecialchars(trim($_POST[\'city\'])), 0, 1000);
<br>$mess = substr(htmlspecialchars(trim($_POST[\'mess\'])), 0, 1000000);
<br>$school = substr(htmlspecialchars(trim($_POST[\'school\'])), 0, 30);
<br>$class = substr(htmlspecialchars(trim($_POST[\'class\'])), 0, 30);
<br>$email = substr(htmlspecialchars(trim($_POST[\'email\'])), 0, 50);
<br>// $to - кому отправляем
<br>$to = \'lakah00@mail.ru\';
<br>// $from - от кого
<br>$from=\'arti02121996@mail.ru\';
<br>// функция, которая отправляет наше письмо.
<br>mail($to, $city, $mess, \'From:\'.$from);
<br>echo \'Спасибо! Ваше письмо отправлено.\';
<br>}
<br>?&gt;



01.08.2010   Artem

Простите за вопрос,но я только начинаю заниматься php
Нужно создать 2 файла?Один из которых php?


02.08.2010   Александр

В этом примере все в одном файле php



26.06.2010   Дмитрий

Добрый день,создал форму и скрипт почти как вы написали толька где-то добавил свае.где-то убрал.Вообщем сообщение отсылается но на почту не приходит,подскажите где моя ошибка,если можите то исправте ее.Вот код формы:
<br>&lt;?php
<br>function show_form()
<br>{
<br>?&gt;
<br>
<br>&lt;FORM action=\&quot;\&quot; method=\&quot;POST\&quot;&gt;
<br> &lt;TABLE style=\&quot;width: 600px\&quot; align=\&quot;center\&quot; cellpadding=\&quot;0\&quot; cellspacing=\&quot;1\&quot; border=\&quot;0\&quot;&gt;
<br> &lt;TR&gt;
<br> &lt;TD&gt;
<br> &lt;input type=\&quot;text\&quot; name=\&quot;name_1\&quot; maxlength=\&quot;60\&quot; value=\&quot;\&quot;&gt; &lt;span class=\&quot;orange\&quot;&gt;*&lt;/span&gt;&lt;span class=\&quot;grey\&quot;&gt;Имя друга&lt;/span&gt;&lt;br&gt;
<br> &lt;/TD&gt;
<br> &lt;/TR&gt;
<br> &lt;TR&gt;
<br> &lt;TD&gt;
<br> &lt;input type=\&quot;text\&quot; name=\&quot;email_1\&quot; maxlength=\&quot;60\&quot; value=\&quot;\&quot;&gt; &lt;span class=\&quot;orange\&quot;&gt;*&lt;/span&gt;&lt;span class=\&quot;grey\&quot;&gt;E-mail друга&lt;/span&gt;&lt;br&gt;
<br> &lt;/TD&gt;
<br> &lt;/TR&gt;
<br> &lt;TR&gt;
<br> &lt;TD&gt;
<br> &lt;input type=\&quot;text\&quot; name=\&quot;name\&quot; maxlength=\&quot;60\&quot; value=\&quot;\&quot;&gt; &lt;span class=\&quot;orange\&quot;&gt;*&lt;/span&gt;&lt;span class=\&quot;grey\&quot;&gt;Ваше имя&lt;/span&gt;&lt;br&gt;
<br> &lt;/TD&gt;
<br> &lt;/TR&gt;
<br> &lt;TR&gt;
<br> &lt;TD&gt;
<br> &lt;input type=\&quot;text\&quot; name=\&quot;email\&quot; maxlength=\&quot;60\&quot; value=\&quot;\&quot;&gt; &lt;span class=\&quot;orange\&quot;&gt;*&lt;/span&gt;&lt;span class=\&quot;grey\&quot;&gt;Ваш e-mail&lt;/span&gt;&lt;br&gt;
<br> &lt;/TD&gt;
<br> &lt;/TR&gt;
<br> &lt;TR&gt;
<br> &lt;TD&gt;
<br> &lt;span class=\&quot;grey\&quot;&gt;Ваше сообщение:&lt;/span&gt;&lt;br&gt;
<br> &lt;textarea name=\&quot;message\&quot; rows=\&quot;10\&quot; cols=\&quot;50\&quot;&gt;&lt;/textarea&gt;
<br> &lt;span class=\&quot;grey\&quot;&gt;&lt;br&gt;\&quot;&lt;span class=\&quot;orange\&quot;&gt;*&lt;/span&gt;\&quot; помечены те поля, которые обязательны к заполнению&lt;/span&gt;
<br> &lt;/TD&gt;
<br> &lt;/TR&gt;
<br> &lt;TR&gt;
<br> &lt;TD&gt;
<br> &lt;input type=\&quot;reset\&quot; name=\&quot;reset\&quot;value=\&quot;Очистить\&quot;&gt; &lt;input type=\&quot;submit\&quot; name=\&quot;submit\&quot; value=\&quot;Отправить\&quot;&gt;
<br> &lt;/TD&gt;
<br> &lt;/TR&gt;
<br> &lt;/TABLE&gt;
<br> &lt;/FORM&gt;
<br>
<br>&lt;?
<br>}
<br>
<br>function complete_mail() {
<br>
<br>$_POST[\'message\'] = substr(htmlspecialchars(trim($_POST[\'message\'])), 0, 1000000);
<br>
<br>$_POST[\'name_1\'] = substr(htmlspecialchars(trim($_POST[\'name\'])), 0, 30);
<br>
<br>$_POST[\'email_1\'] = substr(htmlspecialchars(trim($_POST[\'email\'])), 0, 50);
<br>
<br>$_POST[\'name\'] = substr(htmlspecialchars(trim($_POST[\'name\'])), 0, 30);
<br>
<br>$_POST[\'email\'] = substr(htmlspecialchars(trim($_POST[\'email\'])), 0, 50);
<br>
<br>if (empty($_POST[\'name_1\']))
<br> output_err(0);
<br>
<br>if(!preg_match(\&quot;/[0-9a-z_]+@[0-9a-z_^\\.]+\\.[a-z]{2,3}/i\&quot;, $_POST[\'email_1\']))
<br> output_err(1);
<br>
<br>if(empty($_POST[\'message\']))
<br> output_err(2);
<br>
<br>if (empty($_POST[\'name\']))
<br> output_err(0);
<br>
<br>if(!preg_match(\&quot;/[0-9a-z_]+@[0-9a-z_^\\.]+\\.[a-z]{2,3}/i\&quot;, $_POST[\'email\']))
<br> output_err(1);
<br>
<br>$mess = \' \'.$_POST[\'name\'].
<br>\' \'.$_POST[\'email\'].
<br>\' \'.$_POST[\'mess\'];
<br>
<br>$to = \' \'.$_POST[\'email_1\'];
<br>$from=\' \'.$_POST[\'email\'];
<br>
<br>mail($to, $mess, \&quot;From:\&quot;.$from);
<br> echo \'Спасибо! Ваше письмо отправлено.\';
<br>}
<br>
<br>function output_err($num)
<br>{
<br> $err[0] = \'ОШИБКА! Не введено имя.\';
<br> $err[1] = \'ОШИБКА! Неверно введен e-mail.\';
<br> $err[2] = \'ОШИБКА! Не введено сообщение.\';
<br> echo \'&lt;p&gt;\'.$err[$num].\'&lt;/p&gt;\';
<br> show_form();
<br> exit();
<br>}
<br>
<br>if (!empty($_POST[\'submit\'])) complete_mail();
<br>else show_form();
<br>?&gt;
<br>и что обозначают классы :&lt;span class=\&quot;orange\&quot;&gt; и &lt;span class=\&quot;grey\&quot;&gt; я просто эту форму переделываю))).



22.06.2010   DogEater

Регулярное выражение проверки почты нуждается в доработке:
"/[0-9a-z-_.]+@[0-9a-z-]+\.[a-z]{2,4}/i"

в адресе добавляем точку и подчёркивание.
в домене заменяем подчёркивание на тире. (В RFC 1123 определены следующие разрешенные символы: все прописные латинские буквы (A-Z), строчные буквы (a-z), цифры (0-9) и дефис (-)).
в зоне увеличиваем максимальное количество цифр до 4-х не забывая про домен info.


19.02.2011   Владимир

В зоне увеличиваем до 6, так как макс. длина домена - 6символов - .museum :)



27.05.2010   Александер

А не подскажете как сделать что бы пользователи могли оставлять коментарии??? Как у вас например:)


27.05.2010   смотрите по ссылке

poiu.ru/lessons/index.php-7.htm



27.05.2010   Александер

Автору СПАСИБО ОГРОМНОЕ!!!!!!!!! Все работает СУПЕР!!!!



26.05.2010   Свят

А вот как сделать, если поставлена галочка в чекбокс, то чтобы на ящик приходило "ДА" или "Выбрано", а не "on"?

В данном примере в форму добавляете чекбокс:
<br />Текст для посетителя<br />
<input type="checkbox" name="blablabla" value="Да или Выбрано">
А в функции complete_mail() меняйте
$mess = '
Имя отправителя:'.$_POST['name'].'
на
$mess = '
Имя отправителя:'.$_POST['name'].'
Текст для посетителя:'.htmlspecialchars($_POST['blablabla']).'


25.05.2010   Свят

Столько полезного и всё в одном месте! Побольше таких ресурсов!!!




18.05.2010   Анатолий

для того чтобы отправлять письмо нужно ставить что-то (почтовые серверы и тому подобное) или можно просто написать в php и оно будет отправлятсья?



07.05.2010   Umrbek

respect автору!!! СПАСИБО!!!



24.04.2010   Kirill

огромное спасибо. немного переделал и все отлично заработало!!!



23.04.2010   dada

Как можно организовать получение сообщения в административной части.Можно ли
<br>в $to = \'test@test.ru\'; вместо test@test.ru написать php документ.(Например admin.php).Я в этом деле новичок.Помогите пожалуйста



21.04.2010   Shivelier


----------------------------
<?php
function show_form()
{
?>
<form action="" method=post>
<div align="center">
<br />Ваше имя :<img src="img/set.gif" width="21" height="24" alt=""><br />
<input type="text" name="name" size="40">
<br />Контактный телефон<br />
<input type="text" name="tel" size="40">
<br />Контактный Email: <img src="img/set.gif" width="21" height="24" alt=""><br />
<input type="text" name="email" size="40">
<br />Teма<br />
<input type="text" name="title" size="40">
<br />Сообщение <img src="img/set.gif" width="21" height="24" alt=""><br />
<textarea rows="10" name="mess" cols="35"></textarea> <br>
<br />введите дату: (мм.дд.гг)<br />
<input type="text" name="date" size="20"><br>
<br /><input type="submit" value="Отправить" name="submit">
</div>
</form>
"<img src="img/set.gif" width="21" height="24" alt="">" Помечены поля, которые необходимо заполнить
<?
}

function complete_mail() {
$_POST['title'] = substr(htmlspecialchars(trim($_POST['title'])), 0, 1000);
$_POST['date'] = substr(htmlspecialchars(trim($_POST['date'])), 0, 30);
$_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);
//указываем что переменная $date_m это дата на сервере
$date_m = date("m.d.y");
// Если переменная $date_m строго равна форме "date" то все ок если нет то на ошибку 3
if($date_m != ($_POST['date']))
output_err(3);
// создаем наше сообщение
$mess = '
Имя отправителя:'.$_POST['name'].'
Контактный телефон:'.$_POST['tel'].'
Контактный email:'.$_POST['email'].'
'.$_POST['mess'];
// $to - кому отправляем
$to = 'shivelier@mail.ru';
// $from - от кого
$from='sait@videoregistrator.ru';
mail($to, $_POST['title'], $mess, "From:".$from) ;
echo 'Спасибо! Ваше письмо отправлено.';
}

function output_err($num)
{
$err[0] = 'ОШИБКА! Не введено имя.';
$err[1] = 'ОШИБКА! Неверно введен e-mail.';
$err[2] = 'ОШИБКА! Не введено сообщение.';
$err[3] = 'Ой наверно вы робот? Неправельно введена дата!';
echo '<p>'.$err[$num].'</p>';
show_form();
exit();
}

if (!empty($_POST['submit'])) complete_mail();
else show_form();
?>



15.04.2010   Виктор

Ребят - если есть кто живой будьте добры - подскажите.Форму по образу и подобию сделал на локальном - работает замечательно \в сендмыле появляется\,но блин на сайте никак не хочет работать не в папке ввв ни в сиджиай бине ни с х мод ни без если кто в теме помжите кто чем может


15.04.2010   Виктор

ВСЕ РАБОТАЕТ ГРАНДИОЗНО - АВТОРУ САЙТА ОГРОМНОЕ ЧЕЛОВЕЧЕСКОЕ СПАСИБО!!!!!! ШИКАРНО!!!!!!ФАНТАСТИКА!!!!!!



23.03.2010   Юрец

Огромное спасибо за вашу форму (РАБОЧУЮ),пусть пока не проверил еще на хостинге а только в Денвере,но хотя-бы здесь все получилось,после небольших доработок в отличии от множества других форм )))))Больше всего помучался конечно с кодировкой,но ваш ответ \&quot;Олегу\&quot; 31.01.2007 меня выручил и все наконец-то получилось,как задумано
<br>Сайту и автору тыщапятьсот ++++++



23.02.2010   Александр

Подскажите или помогите. Сил нету. Есть форма. Когда заполняем форму - отправить и далее делается рассылка на указанные ящики. Все работает, проблем с кодировкой нет. Единственное работает очень медленно. Сразу скажу, что содержимое письма целое число + тема письма. КАК УСКОРИТЬ ПРОЦЕСС ОТПРАВКИ?



15.02.2010   Денис

Круто!!! Спасибо



31.01.2010   oracle

сделал по типу вашего скрипта анкету-форму, но никак не могу понять как сделать чтобы прикреплять можно было не одно изображение, а 5-6. подскажите пожалуйста



25.01.2010   Сергей

Бред! Про кодировку забыли? а много новичков именно об это ломают мозг!


26.01.2010   Андрей

Ну я вставил вот это в форму &lt;meta http-equiv=\&quot;Content-Type\&quot; content=\&quot;text/html; charset=windows-1251\&quot; /&gt;, а что еще можно сделать с кодировкой?! Конечно бред, я что спорю! Скажите как сделать чтобы не был бред, плз!



24.01.2010   Андрей

Я воспользовался генератором, но у меня проблемы с кодировкой. Объясните чайнику, что не так сделал? Просмотрел все комментарии, но ничего не помогло, а некоторые советы я не в состоянии воспроизвести (чайник). Спасибо.



20.01.2010   Андрей

Спасибо, заработало, только не так как надо. Мне нужна несколько иная форма, поэтому я \&quot;творчески\&quot; переработал Ваш код вот так
<br>&lt;?
<br>
<br>
<br>function complete_mail() {
<br> // $_POST[\'title\'] содержит данные из поля \&quot;Тема\&quot;, trim() - убираем все лишние пробелы и переносы строк, htmlspecialchars() - преобразует специальные символы в HTML сущности, будем считать для того, чтобы простейшие попытки взломать наш сайт обломались, ну и substr($_POST[\'title\'], 0, 1000) - урезаем текст до 1000 символов. Для переменных $_POST[\'mess\'], $_POST[\'name\'], $_POST[\'tel\'], $_POST[\'email\'] все аналогично
<br> $_POST[\'title\'] = substr(htmlspecialchars(trim($_POST[\'title\'])), 0, 1000);
<br> $_POST[\'mess\'] = substr(htmlspecialchars(trim($_POST[\'mess\'])), 0, 1000000);
<br> $_POST[\'name\'] = substr(htmlspecialchars(trim($_POST[\'name\'])), 0, 30);
<br> $_POST[\'tel\'] = substr(htmlspecialchars(trim($_POST[\'tel\'])), 0, 30);
<br> $_POST[\'adr\'] = substr(htmlspecialchars(trim($_POST[\'adr\'])), 0, 50);
<br> // если не заполнено поле \&quot;Имя\&quot; - показываем ошибку 0
<br> if (empty($_POST[\'name\']))
<br> output_err(0);
<br> if (empty($_POST[\'tel\']))
<br> output_err(0);
<br> if (empty($_POST[\'adr\']))
<br> output_err(0);
<br> // если не заполнено поле \&quot;Сообщение\&quot; - показываем ошибку 2
<br> if(empty($_POST[\'mess\']))
<br> output_err(2);
<br> // создаем наше сообщение
<br> $mess = \'
<br>Название предприятия:\'.$_POST[\'name\'].\'
<br>Телефон(ы):\'.$_POST[\'tel\'].\'
<br>Адрес местонахождения:\'.$_POST[\'adr\'].\'
<br>Основные виды деятельности:\'.$_POST[\'mess\'];
<br> // $to - кому отправляем
<br> $to = \'pragos@ya.ru\';
<br> // $from - от кого
<br> $from=\'pragos@ya.ru\';
<br> mail($to, $_POST[\'title\'], $mess, \&quot;From:\&quot;.$from);
<br> echo \'Спасибо! Ваше письмо отправлено.\';
<br>}
<br>
<br>function output_err($num)
<br>{
<br> $err[0] = \'ОШИБКА! Не введены название, телефон или адрес.\';
<br> $err[1] = \'ОШИБКА! Неверно введен e-mail.\';
<br> $err[2] = \'ОШИБКА! Обязательно опишите виды деятельности.\';
<br> echo \'&lt;p&gt;\'.$err[$num].\'&lt;/p&gt;\';
<br> show_form();
<br> exit();
<br>}
<br>
<br>if (!empty($_POST[\'submit\'])) complete_mail();
<br>?&gt;
<br>
<br>Мне присылается сообщение где указан только телефон, а ни названия, ни адреса, ничего остального нет вообще! Посмотрите, что не так. Спасибо.



19.01.2010   Андрей

Спасибо, отличный способ! Только у меня чего-то не работает. При отправке сообщения выдает Parse error: parse error, unexpected '}' in /home/a/azovpages.hut1.ru/WWW/script.php on line 3. Что бы это значило?

Это значит, что у Вас в коде ошибка. Видимо в третьей строке файла script.php лишняя закрыващая фигурная скобка. Весь код не видно, поэтому точнее не смогу помочь.


10.01.2010   Valera

Я облазил весь инет в поисках подобного, всё сделал как написано но у меня вобще не работает. Мне надо на html страницу вставить эту форму. Форма сообщений есть, а скрипт не работает. Если не трудно обьясните как быть и что сделать. Или уже готовый скрипт выложите, плиззз, что бы не исправлять.

Сожалею, но без php работать не будет.


24.12.2009   Посмотритель

Типичная ошибка которая бездумно скопирована с большинства источников - маска проверки мейл-адреса..
люди у которых в адресе ' - ' не пройдут проверку

Ну, добавьте просто тире в регулярное выражение
Т.е. замените
if(!preg_match("/[0-9a-z_]+@[0-9a-z_^\.]+\.[a-z]{2,3}/i"$_POST['email']))
на
if(!preg_match("/[0-9a-z_]+@[0-9a-z_\-^\.]+\.[a-z]{2,3}/i"$_POST['email']))

19.02.2011   Владимир

Тваюжмать, а что у нас творится с доменами Медведевдолбоеб.рф??????? Никто еще мэйл оттуда не получал?:)



13.12.2009   Oleg

Привет! А как мне вернуть пользователя обратно на ту же страницу, на которой я поставил эту форму? Причем в 2 вариантах. 1- если все ок , то пользователю показать спасибо. 2- если пользователь что то не заполнил то дозаполнить. Но оба действия надо вернуть на туже страницу. А то сейчас отправляет на другую без дизайна сайта Ж((((



12.12.2009   Соник

Ай молодец,редко что то постю,но на самом деле таких людей хороших мало!
По этому выражаю блогодарность автору!)



10.11.2009   Паша

Ай да маладца!!! А!!! Есть же на свете люди хорошие! Дай Бог таким как Вы много-много здоровья;денег и конечно счастья! Вам вернется 1000 кратно! Даже не сомневайтесь.



05.11.2009   Артур

Подскажите пожалуйста!!! Отправляю письмо, пишет, что отправлено, но на почте ничего нет! Заранее благодарен!

Попробуйте следущий пример. Причем рекомендую посмотреть комент про SMTP.


03.11.2009   artur radrigis

в опере 10 не php не выходит на обработку. по нажатию кнопки отправить ничего не происходит


25.12.2009   Ник

А у меня в опере 10 все работает



01.11.2009   Максим, Казаков

ммм ( не отправляет



22.10.2009   Старый солдат

вместо substr(htmlspecialchars(trim($_POST['title'])), 0, 1000);
может лучше так?
substr(htmlspecialchars(trim($_POST['title']), ENT_QUOTES), 0, 100);

не хватает для полноты картины CAPTCHA



19.10.2009   Роман

Привет. Есть вопрос: На сколько безопасен такой скрипт для сайта? Заранее Спасибо!



07.10.2009   Андрей

Спасибо! Отличный скрипт! Скажите, а что надо написать вот тут echo 'Спасибо! Ваше письмо отправлено.'; что бы после отправки письма загружалась страница, ну например, thanks.html?

заранее спасибо!

Попробуйте так:
echo '<script>window.location = "thanks.html";</script>'


05.10.2009   kirs

spasibo, vse klassno , vse rabotaet



07.09.2009   Константин

Скрипт реально классный. Спасибо автору ).
Но есть проблема такая.
Всстраиваю скрипт в свой дизайн он перестает работать.
Пробовал по разному. И вызовом файла со скриптом и вставкой всего кода в файл. Форма отображается, но скрипт не функционирует.
Не проверяет на ощибки и когда нажимаешь Отправить то просто обновляет страницу с чистыми полями.
А если скрипт сам в отдельнлом файле, то все работает четко. Подскажите пожалуйста в чем может быть проблема ?



02.09.2009   Olivka

Владимир, если ты все правильно сделал, то после отправки сообщения должна быть не пустая страница, а страница с надписью "Спасибо! Ваше письмо отправлено." Если хочешь, чтобы выводилась другая надпись, то вот здесь:
echo 'Спасибо! Ваше письмо отправлено.';
- пишешь нужную фразу



02.09.2009   Olivka

<br> вставилось в моё сообщение автоматически, в коде его, разумеется, надо убрать :)



02.09.2009   Olivka

Антон, избавиться от exit можно так - не писать его в output_err($num), а вместо
<br>if (empty($_POST[\'name\']))
<br> output_err(0);
<br> // если неправильно заполнено поле email - показываем ошибку 1
<br> if(!preg_match(\&quot;/[0-9a-z_]+@[0-9a-z_^\\.]+\\.[a-z]{2,3}/i\&quot;, $_POST[\'email\']))
<br> output_err(1);
<br> // если не заполнено поле \&quot;Сообщение\&quot; - показываем ошибку 2
<br> if(empty($_POST[\'mess\']))
<br> output_err(2);
<br> // создаем наше сообщение
<br> $mess = \'
<br>Имя отправителя:\'.$_POST[\'name\'].\'
<br>Контактный телефон:\'.$_POST[\'tel\'].\'
<br>Контактный email:\'.$_POST[\'email\'].\'
<br>\'.$_POST[\'mess\'];
<br> // $to - кому отправляем
<br> $to = \'test@test.ru\';
<br> // $from - от кого
<br> $from=\'test@test.ru\';
<br> mail($to, $_POST[\'title\'], $mess, \&quot;From:\&quot;.$from);
<br> echo \'Спасибо! Ваше письмо отправлено.\';
<br>
<br>написать так:
<br> if (empty($_POST[\'name\']))
<br> output_err(0);
<br> else
<br> // если неправильно заполнено поле email - показываем ошибку 1
<br> if(!preg_match(\&quot;/[0-9a-z_]+@[0-9a-z_^\\.]+\\.[a-z]{2,3}/i\&quot;, $_POST[\'email\']))
<br> output_err(1);
<br> else
<br> // если не заполнено поле \&quot;Сообщение\&quot; - показываем ошибку 2
<br> if(empty($_POST[\'mess\']))
<br> output_err(2);
<br> // создаем наше сообщение
<br> else
<br> {
<br> $mess = \'
<br> Имя отправителя:\'.$_POST[\'name\'].\'
<br> Контактный телефон:\'.$_POST[\'tel\'].\'
<br> Контактный email:\'.$_POST[\'email\'].\'
<br> \'.$_POST[\'mess\'];
<br> // $to - кому отправляем
<br> $to = \'test@test.ru\';
<br> // $from - от кого
<br> $from=\'test@test.ru\';
<br> mail($to, $_POST[\'title\'], $mess, \&quot;From:\&quot;.$from);
<br> echo \'Спасибо! Ваше письмо отправлено.\';
<br> }



22.08.2009   Владимир

После отправки почты в браузере появляется пустое окно!? Зачем!? Как избавиться от этого!



14.08.2009   pergunt

Хорошо!



13.08.2009   Антон

ДД
подниму выше:
при проверке полей он выдает ошибку и прекрашает html код вообще, а у меня еще таблица дальше идет.
Вся загвоздка в функции exit(); это можно как нидь обойти??? если ее убрать то мне выводит 3 одинаковые формы=(

как исправить?



22.07.2009   Olivka

Александр, если проблема ещё актуальна, то попробуйте так:
$from=$_POST['email'];
вместо $from='test@test.ru';
и всё будет нормально работать



09.07.2009   Александр

maxiz не работает выдает ошибку в синтаксисе



07.07.2009   валерий

ух ты надо бы попробовать



05.07.2009   maxiz

Александр:
<br> mail($to, $_POST[\'title\'], $mess, \&quot;From:\&quot;.$_POST[\'email\']);



01.07.2009   Qwerty

Я Outlook\\\\\\\\\\\\\\\'ом не пользуюсь, поэтому проверить не могу, но попробуйте заменить:
<br>&lt;br&gt;&amp;lt;br&amp;gt;&amp;amp;lt;br&amp;amp;gt;$from=\\\\\\\\\\\\\\\'test@test.ru\\\\\\\\\\\\\\\';
<br>&lt;br&gt;&amp;lt;br&amp;gt;&amp;amp;lt;br&amp;amp;gt;mail($to, $_POST[\\\\\\\\\\\\\\\'title\\\\\\\\\\\\\\\'], $mess, \\\\\\\\&amp;amp;amp;quot;From:\\\\\\\\&amp;amp;amp;quot;.$from);
<br>&lt;br&gt;&amp;lt;br&amp;gt;&amp;amp;lt;br&amp;amp;gt;на
<br>&lt;br&gt;&amp;lt;br&amp;gt;&amp;amp;lt;br&amp;amp;gt;$from=\\\\\\\\\\\\\\\'test@test.ru\\\\\\\\\\\\\\\';
<br>&lt;br&gt;&amp;lt;br&amp;gt;&amp;amp;lt;br&amp;amp;gt;$headers = \\\\\\\\\\\\\\\'From: \\\\\\\\\\\\\\\'.$from . \\\\\\\\&amp;amp;amp;quot;\\\\\\\\\\\\\\\\r\\\\\\\\\\\\\\\\n\\\\\\\\&amp;amp;amp;quot; .
<br>&lt;br&gt;&amp;lt;br&amp;gt;&amp;amp;lt;br&amp;amp;gt;\\\\\\\\\\\\\\\'Content-type: text/plain; charset=\\\\\\\\&amp;amp;amp;quot;windows-1251\\\\\\\\&amp;amp;amp;quot;\\\\\\\\\\\\\\\' . \\\\\\\\&amp;amp;amp;quot;\\\\\\\\\\\\\\\\r\\\\\\\\\\\\\\\\n\\\\\\\\&amp;amp;amp;quot;;
<br>&lt;br&gt;&amp;lt;br&amp;gt;&amp;amp;lt;br&amp;amp;gt;mail($to, $_POST[\\\\\\\\\\\\\\\'title\\\\\\\\\\\\\\\'], $mess, $headers);
<br>&lt;br&gt;&amp;lt;br&amp;gt;&amp;amp;lt;br&amp;amp;gt;
<br>&lt;br&gt;&amp;lt;br&amp;gt;&amp;amp;lt;br&amp;amp;gt;
<br>&lt;br&gt;&amp;lt;br&amp;gt;&amp;amp;lt;br&amp;amp;gt;====================
<br>&lt;br&gt;&amp;lt;br&amp;gt;&amp;amp;lt;br&amp;amp;gt;НЕ РАБОТАЕТ



09.06.2009   Александр

Скажите как сделать, чтобы в адресе отправителя прописывался именно адрес почты отправителя, а не адрес моего почтовика (postadmin@akva.nichost.ru), мне нужно чтобы можно было автоматом отвечать сразу всем кто напишет, а вместо этого придется ручками вбивать емайл из тела письма в адресную строку


19.02.2011   Александр

Вот сам себе и отвечаю на вопрос, но действительно сложно додуматься ,что дело в хостинге)))) Надеюсь помогу другим с этой проблемой

кстати писал здесь об одной проблеме, многие могут столкнуться, письма с сайта могут приходить не от адреса отправителя, а от адреса служебного е-майла на хостинге, и вследствии этого, если автоматом ответить, то письмо не уйдет отправителю, долго мучался, но проблема не в скрипте, а на хостинге, вобщем у кого как, нужно подтвердить, что майл на который шлют письма (в управлении панели хостинга) является или его сделать доверенным, что-то вроде этого, такая проблема у меня возникла на nic.ru, и сами специалисты с nic.ru мне помогли и после этого тема письма стала встраиваться в тему почтового клиента, а до этого она была отдельно, а там была какая-то абракадабра, так что у кого хостинг на nic.ru учтите этот момент, автору спасибо



17.05.2009   Михаил

Подскажите: необходимо переменную ИНН проверить на количество знаков = 10, как сделать?



17.05.2009   Михаил

Сам разобрался и установил



17.05.2009   Михаил

Подскажите куда необходимо свтавить код, что-бы при ошибке заполненые данные сохранялись? Спасибо автору инфо очень помогает.
<br>Пробовал ставить но не работает у меня.
<br>&lt;input type=\&quot;text\&quot; name=\&quot;title\&quot; value=\&quot;&lt;?=substr(htmlspecialchars(trim($_POST[\'title\'])), 0, 100);?&gt;\&quot; size=\&quot;40\&quot;&gt;



13.05.2009   Татьяна

у меня почему-то не приходит письмо на мой ящик. Пишет \\\\&amp;amp;quot;Спасибо! Ваше письмо отправлено.\\\\&amp;amp;quot; Никаких ошибок не выдаёт....



09.05.2009   Давид

Спасибо! Очень хороший сайт!



08.04.2009   Artiom

Может кто то может готовый шаблон прислать ?
<br>мой маил : artiom34@gmail.com
<br>Пожалуйста пришлите



25.03.2009   Александр

Огромное спасибо без вас не обошолся бы



05.03.2009   brigz

Подскажите пожалуйста.
имеется скрипт отправки письма на E-mail.
///////////////////////////////////////

<?php

function show_form()
{
?>

<form action="" method=post enctype="multipart/form-data">
<div>
<table name="table_form">
<tr>
<td>
<p><input type="text" name="name"></p>
<p><input type="text" name="email"></p>
<p><textarea rows="5" name="mess" cols="70"></textarea></p>
<p><input type="submit" value="Отправить" name="submit"></p>
</td>
</tr>
</table>
<table name="table_error">
<tr>
<td></td>
</tr>
</table>
</div>
</form>

<?
}

function complete_mail() {

$_POST['name'] = substr(htmlspecialchars(trim($_POST['name'])), 0, 40);
$_POST['email'] = substr(htmlspecialchars(trim($_POST['email'])), 0, 50);
$_POST['mess'] = substr(htmlspecialchars(trim($_POST['mess'])), 0, 1000000);

// если не заполнено поле "Имя" - показываем ошибку 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['country']))
output_err(2);

$mess = '
<b>Имя:</b>'.$_POST['name'].'<br />
<b>Контактный email:</b>'.$_POST['email'].'<br />
'.$_POST['mess'];

require 'class.phpmailer.php';

$mail = new PHPMailer();
$mail->From = 'you@mail.com'; // от кого
$mail->FromName = '://my.site.com'; // от кого
$mail->AddAddress('my@mail.com', 'Имя'); // кому - адрес, Имя
$mail->IsHTML(true); // выставляем формат письма HTML
$mail->Subject = $_POST['title']; // тема письма

$mail->Body = $mess;

// отправляем наше письмо
if (!$mail->Send()) die ('Mailer Error: '.$mail->ErrorInfo);
echo '<p>Спасибо! Ваш заказ отправлен.</p>';
}

function output_err($num) {
$err[0] = 'ОШИБКА! Не введено имя.';
$err[1] = 'ОШИБКА! Не верно введен email.';
$err[2] = 'ОШИБКА! Не введено ваше сообщение.';

echo '<p>'.$err[$num].'</p>';
show_form();
exit();
}

if (!empty($_POST['submit'])) complete_mail();
else show_form();
?>
///////////////////////////////////////////
Скрипт работает безупрено, хотелось бы доработать следующее:
есле форма запалнена не корректно, скрипт выводит сообщение (например: 'ОШИБКА! Не введено имя.')
в верхней части тега <table name="table_form">. Как сделать так, что бы сообщение выводилось в теге
<table name="table_error">? Помогите. Зарание благодарен.



01.03.2009   Ратмир

Письма веселой толпой начали приходить на следующий день О_о Странно



28.02.2009   Ратмир

Ладно. В денвере всё понятно. Там заглушка стоит и все письма сохраняются в /tmp , а следовательно код работает. Ведь так?
<br>Дальше. Залил на хост. Заюзал эту форму. Вуаля: Спасибо! Ваше письмо отправлено. Никаких ошибок. Но почему сообщение не доходит до указанного адресата(мойлогин@яндекс.ру).
<br>Или это до меня что-то не доходит.
<br>Автор, F1!!!



28.02.2009   Ратмир

Ладно. В денвере всё понятно. Там заглушка стоит и все письма сохраняются в /tmp , а следовательно код работает. Ведь так?
<br>&lt;br&gt;&amp;lt;br&amp;gt;&amp;amp;lt;br&amp;amp;gt;&amp;amp;amp;lt;br&amp;amp;amp;gt;&amp;amp;amp;amp;lt;br&amp;amp;amp;amp;gt;Дальше. Залил на хост. Заюзал эту форму. Вуаля: Спасибо! Ваше письмо отправлено. Никаких ошибок. Но почему сообщение не доходит до указанного адресата(мойлогин@яндекс.ру).
<br>&lt;br&gt;&amp;lt;br&amp;gt;&amp;amp;lt;br&amp;amp;gt;&amp;amp;amp;lt;br&amp;amp;amp;gt;&amp;amp;amp;amp;lt;br&amp;amp;amp;amp;gt;Или это до меня что-то не доходит.
<br>&lt;br&gt;&amp;lt;br&amp;gt;&amp;amp;lt;br&amp;amp;gt;&amp;amp;amp;lt;br&amp;amp;amp;gt;&amp;amp;amp;amp;lt;br&amp;amp;amp;amp;gt;Автор, F1!!!



27.02.2009   Ратмир

Привет. Заюзал код, ошибок не выдавал. Пробовал на разные почтовые сервера отправлять, но сообщения не доходят. В чём собственно трабла? Не допру



26.02.2009   Таня

Все поняла что делать, спасибо



26.02.2009   Таня

Скажите пожалуйста как реализовать возможность подстановки в $to адреса который пользователь вводит в форму.
Вот такой пример:
я хочу что бы при вводе адреса в поле он записывался в файл и на этот адрес приходило бы письмо
Код вот такой:
$script=$_SERVER["PHP_SELF"];
$file="file.txt";
$method = $_SERVER["REQUEST_METHOD"];
if($method == "POST"){
$email = @$_POST['email'];
}
$subject = "New";
$to = "test@test.ru";
$body = "message send";
mail($to, $subject, $body,);
В общем что нужно написать после $to = что бы улетало на только что введенное мыло?



20.02.2009   Катя

Скажите, в чем может быть ошибка: скрипт отрабатывает, появляется сообщение об успешной отправке, а на указанный мной ящик ничего не приходит?



12.02.2009   toviko

проверил (-;



07.02.2009   Кот

Скрипт работает, больше того - он работает даже на Денвере ;)



01.02.2009   Romanzo

Костя:
Иногда почтовый сервер считает такие сообщения спамерскими, посмотри в папке со спамом.



16.01.2009   Ct2Sik

При отправке сообщения, если тема (title) была написана русскими символами, то у получателя написано - \&quot;Без Темы\&quot;, а при латинской раскладке все нормально (тоесть в первом случае тема не создаеться (или просто не отображаеться) а во втором и создаеться и отображаться... почему?



14.01.2009   Valery

Заработало сразу, но к адресу добавляется имя хоста test@test.ru.leaderhost.ru - автоответчик пишет не туда...
Как продублировать мессагу тому, кто пишет?



14.01.2009   Костя

Понимаю, может задаю глупые вопросы, но все же...
Я создал с помощью генератора код отправки письма, скопировал файлик для работы отправки, но письмо все же не отправляется, я еще не выложил сайт в интернет, но создал сервер на своем компьютере, возможно в этом причина??? Подскажите пожалуйста, это из-за того что я сайт в нет не выложил или всеже нужно что то сделать.



13.01.2009   Костя

Добрый вечер.
У меня возникает небольшая проблема, мне нужно чтобы письмо отправлялось на определенную почту я меняю
$to - кому отправляем
$to = 'на необходимый e-mail адрес';
Но почта на него не отправляется, объясните новичку что надо сделать!



13.01.2009   Костя

Добрый вечер.
<br>&lt;br&gt;У меня возникает небольшая проблема, мне нужно чтобы письмо отправлялось на определенную почту я меняю
<br>&lt;br&gt;// $to - кому отправляем
<br>&lt;br&gt; $to = \\\'на необходимый e-mail адрес\\\';
<br>&lt;br&gt;Но почта на него не отправляется, объясните новичку что надо сделать!



07.01.2009   Иван

День добрый.
Прекрасный ресурс!!!!
Подскажите, пожалуйсьта, как добавить счетчик в письмо. Хочу, чтоб либо в теле письма, льбо (и лучше) в теме - его порядковый номер (как на заявках в техподдержку)



13.12.2008   Максим

Я хочу дать возможность пользователям отправлять сообщения своим друзьям через эту форму. Т.е. $to должна быть динамической. Почему $mess = $_POST['mess']; - обрабатывается, а $to = $_POST['email'] и $from=$_POST['name']; - нет. Или идея не правильная? Расскажите, плиз, как отправлять на разные почтовые ящики.



29.11.2008   Олег

Подскажите плз.
<br>&lt;br&gt;Я на хост сайт загрузил, а в ячейках у меня вот это висит - &amp;lt;?=substr(htmlspecialchars(trim($_POST[\\\'input_name\\\'][4])), 0, 500);?&amp;gt;
<br>&lt;br&gt;Как убрать можно???
<br>&lt;br&gt;Спасибо)



01.11.2008   Саша

А подскажите пожалуйста
как сделать, что бы пользователь не заполнял некоторые поля в форме а выбирал из выпадающего списка.
ну например он заполнил ручками свое имя, майл, а страну где он проживает выбрал из выпадающего списка (заранее мной составленного)
заранее мерси !

<select name="select_name"><option>Москва</option><option>Курск</option></select>
...
echo
$_POST['select_name']


27.10.2008   Юля

спасибо за такой сайт... он мне очень помог :) со всем уже разобралась...



27.10.2008   Юля

Здравствуйте.
когда на кнопку нажимаю, выдается ошибка в строке
$to='trudy@mail.ru'
что не так?



20.10.2008   Андрей

Скрипт хорош, есть вопрос в продолжение темы:

Подскажите как сделать чтоб при ошибке текст в полях не стирался.
Пробовал добавит value="$переменная", не работает. Переменная воспринемается как строка.
Пример: <input type="text" name="title" value="title"> size="40">

Попробуйте так:
<input type="text" name="title" value="<?=substr(htmlspecialchars(trim($_POST['title'])), 0, 100);?>" size="40">

с текстовым полем работает, а как быть с текстовой областью? в область пишеться основная информация,если форма имеет ошибку, инфа из области стирается..
Это можно поправить?


27.02.2010   Александр

<textarea type="text" name="mess" rows="10" cols="38"><?=substr(htmlspecialchars(trim($_POST['mess'])), 0, 100);?></textarea> я сделал так ввел строку в само поле и заработало



17.10.2008   Юля

Не могли бы вы мне помочь?.. как будет это выглядеть, если разделить этот скрипт на форму и отдельно скрипт?.. а то никак не получается...

файл с формой:
<
form action="script.php" method=post>
...
</
form>

файл который обрабатывает назовите script.php и поместите в него оставшийся код:
<?
php
function complete_mail() {
...
if (!empty(
$_POST['submit'])) complete_mail();
?>

Все.
else show_form(); можно выкинуть :)


17.10.2008   Дмитрий

Скрипт супер, но одна проблема, при проверке на заполненоть полей он выдает ошибку и прекрашает html код вообще, а у меня еще таблица дальше идет.
Вся загвоздка в функции exit(); это можно как нидь обойти??? если ее убрать то мне выводит 3 одинаковые формы=(

        $error 0;
        if (empty(
$_POST['name'])){
             echo 
'ОШИБКА! Не введено имя.';
             
$error 1;
        }
        if(!
preg_match("/[0-9a-z_]+@[0-9a-z_^\.]+\.[a-z]{2,3}/i"$_POST['email'])){
             echo 
'ОШИБКА! Неверно введен e-mail.';
             
$error 1;
        }
        if(empty(
$_POST['mess'])){
             echo 
'ОШИБКА! Не введено сообщение.';
             
$error 1;
        }

        // создаем наше сообщение
        
$mess = '
Имя отправителя:'
.$_POST['name'].'
Контактный телефон:'
.$_POST['tel'].'
Контактный email:'
.$_POST['email'].'
'
.$_POST['mess'];
        
// $to - кому отправляем
        
$to = 'test@test.ru';
        
// $from - от кого
        
$from='test@test.ru';

        if(
$error != 1mail($to$_POST['title'], $mess"From:".$from);
        else 
show_form();
        


08.10.2008   SS

А вы не забываете в страце формы указывать?:
<meta http-equiv=Content-Type content="text/html; charset=windows-1251">
ни каких историй с каракулями не замечал



02.10.2008   Vernaja

та же история с каракулями



16.09.2008   Hasys

Я разделил код на две части на форму и код отправки,
теперь у меня слова, которые на второй странице шлются нормально, а кот. передаются с формы пишутся каракулями, всё что здесь по поводу кодировки пробовал лишь появляются др. каракули :( незнаю что делать



10.09.2008   Виталий

Так и что делать?! Не очень хочется менять хостера!
Есть какие-нибудь другие способы отправки писем?!



07.08.2008   Виталий

И у меня Method Not Allowed
Говорят, что хостер виноват?! правда?

правда


30.07.2008   Алексей

У меня возникает ошибка
Method Not Allowed
The requested method POST is not allowed for the URL /data/html/3.html.
Как я могу настроить сервер и подключить POST метод?



23.07.2008   Vitaly

Скажите пожалуйста почему пропадает часть кода который следует за вашим скриптом если скрипт выходит на функцию output_err (Это команда Exit()покидает PHP)у меня следом за вашим скриптом идет PHP код



22.06.2008   Вардан

У кого проблемы с кодировкой делайте следующее.
Объявите в коде до функции mail следующее

$headers= 'Content-type: text/html; charset=utf-8' . "\r\n";

и включите $headers в функцию mail т.е. вот так

mail('to@mail.com', 'Subject', $message ,$headers)

где $message тело сообщения



15.06.2008   Борис

workandrest.ru/Заявка.htm
<br>&lt;br&gt;Письмо приходит ну пустое, что не так



09.06.2008   Алексей

спасибо.



06.06.2008   tomylery

Спасибо за интересный и полезный ресурс.
Нашел много интересного.



31.05.2008   ZuLLeR

Вот зашел посмотрел все Супер на самом деле, но есть маленький вопрос, смотрите а если мы используем форму выбора:
<td>Размещение</td>
<td><select name="accommodation">
<option value="1" selected>1-местное</option>
<option value="2">2-местное</option>
</select></td>
</tr>
<tr>
<td>Категория номера</td>
<td><select name="cnumbers">
<option value="1" selected>Стандартный номер Twin</option>
<option value="2">Стандартный номер Queen</option>
<option value="3">Номер для инвалидов Twin</option>
<option value="4">Стандартный номер Super Queen</option>
<option value="5">Exclusive</option>
</select></td>
</tr>
<tr>
<td>Количество номеров</td>
<td><input name="nrooms" type="text" size="2"></td>
</tr>
<tr>
<td>Дата заезда</td>
<td><select name="Arrival_d">
<option value="01" selected>01</option>
<option value="02">02</option>
<option value="03">03</option>
<option value="04">04</option>
<option value="05">05</option>
<option value="06">06</option>
<option value="07">07</option>
<option value="08">08</option>
<option value="09">09</option>
<option value="10">10</option>
<option value="11">11</option>
<option value="12">12</option>
<option value="13">13</option>
<option value="14">14</option>
<option value="15">15</option>
<option value="16">16</option>
<option value="17">17</option>
<option value="18">18</option>
<option value="19">19</option>
<option value="20">20</option>
<option value="21">21</option>
<option value="22">22</option>
<option value="23">23</option>
<option value="24">24</option>
<option value="25">25</option>
<option value="26">26</option>
<option value="27">27</option>
<option value="28">28</option>
<option value="29">29</option>
<option value="30">30</option>
<option value="31">31</option>
</select>
<select name="Arrival_m">
<option value="01" selected>01</option>
<option value="02">02</option>
<option value="03">03</option>
<option value="04">04</option>
<option value="05">05</option>
<option value="06">06</option>
<option value="07">07</option>
<option value="08">08</option>
<option value="09">09</option>
<option value="10">10</option>
<option value="11">11</option>
<option value="12">12</option>
</select>
<select name="Arrival_y">
<option value="2008" selected>2008</option>
<option value="2009">2009</option>
<option value="2010">2010</option>
<option value="2011">2011</option>
<option value="2012">2012</option>
<option value="2013">2013</option>
<option value="2014">2014</option>
<option value="2015">2015</option>
</select></td>
Как в ланном случае быть??? Причем форма одним файлом а сам php подкрепляется к нему.
Заранее благодарен!!!



08.05.2008   Misslady

У тебя суперский портал, мне он очень понравился! Продолжай в том же ключе! Добавил его в Избранное, да и всем советую. Предлагаю посетить на мою страничку



30.04.2008   ApostroF

Скажите, а могу я как то использовать ваш код, если у меня есть сайт, но не мой и мои права ограничиваются созданием и удалением страничек и их содержимого?



10.04.2008   Александр

Спасибо за скрипт)



01.04.2008   GriM)

Миха) Если это тебе действительно нужно ( а в этом случае ты регулярно проверяешь эту страницу ) так вот, я могу тебе этот скрипт переписать. Тока скажи, а то так просто лень. И асю или имейл дай)



31.03.2008   Григорий

Ну... На денвере что то не пашет, не знаю ужж)



26.03.2008   Glook

А можно посылать письма на разные адреса? Скажем в форму добавить выпадающий список с именами? которым в скрипте сопоставить адреса и динамически изменять значение $to



21.03.2008   Кит

отличный работоспособный скрипт, но как заставить его работать на подключение к маил_серверу? тоесть провести коннект и авторизацию?



06.03.2008   Миха

А можно ли вас попроить обновить весь скрипт, со всеми дополннениями:
1.защита от спама
2.Если пользователь не правильно ввел свой емайл, что бы не обнулялись все остальные поля, а не правильный емайл подчеркивался бы красным цветом



02.03.2008   hzwtf

Не подскажите как сделать, чтобы письмо с одним и тем же сообщением отправлялось не на один ящик, а на несколько сразу ?



29.02.2008   Ванёг

А если у меня большая форма с текстовыми полями и переключателями radio, как тогда будет выглядеть скрипт? заранее спасибо



27.02.2008   gif

И еще - обязательно ли преобразование специальных символов в HTML? Может ли это влиять на доставку сообщения? Спасибо!



27.02.2008   gif

Здравствуйте! Спасибо за полезный скрипт! Есть вопрос - вывод сообщения \&quot;Ваше письмо отправлено\&quot; на страницу это показатель, что функция mail() вернула значение true? И еще - есть ли ограничение на размер письма?



22.02.2008   Евгений

Здравствуйте!
прописал в contakt.php код этого скрипта, форма выводится нормально но не работает.
вот страница с формой: www.ecobur.ru/contakt.php
вообще ни какой реакции на нажатие кнопки Отправить.



12.02.2008   Артём

Спасибо вам! Не подскажите, как сделать чтобы перед отправкой сообщения, пользователю сначала показывалось то что он написал и выводилось две кнопки "изменить" и "отправить"? Спасибо заранее



02.02.2008   Дениз-з-з

Привет! мне очень пригодилась данная форма. но у меня задачи стоят еще шире. я совсем недавно стал изучать и пробывать php. и мне необходимо вставить \&quot;Код подтверждение\&quot;... я скачал kcaptcha.zip, но установить не могу. как можно это сделать к данной форме? Помогите.



02.02.2008   Дениз-з-з

Привет! мне очень пригодилась данная форма. но у меня задачи стоят еще шире. я совсем недавно стал изучать и пробывать php. и мне необходимо вставить "Код подтверждение"... я скачал kcaptcha.zip, но установить не могу. как можно это сделать к данной форме? Помогите.



28.01.2008   я

после отправки грузится строка спасибо письмо отправлено, как сделать так что бы выскакивала вся страница с формой отправки



28.01.2008   led

а как сделать чтобы были поля отправки
<br>от:
<br>тема:
<br>сообщение:



27.01.2008   kropal

Доброго времени суток. Спасибо за форму, все отлично работает, сам бы никогда не написал... Если не тяжело, прокоментируйте, пожалуйста, последний отрезок кода, а именно:

function output_err($num)
{
$err[0] = 'ОШИБКА! Не введено имя.';
$err[1] = 'ОШИБКА! Неверно введен e-mail.';
$err[2] = 'ОШИБКА! Не введено сообщение.'; с этим все понятно, а вот дальше...

echo '<p>'.$err[$num].'</p>';
show_form();
exit();
}

if (!empty($_POST['submit'])) complete_mail();
else show_form();

заранее благодарен.



26.01.2008   Юра

Привет



26.01.2008   Сергей

Здравствуйте! Скажите пожалуйста, можно ли сделать такую форму на сайте, чтобы человек зашел вписал нужное количество к примеру WMZ и оставил свой емайл и чтобы после нажатия кнопки подтвердить, выходил ответ на страницу в виде заказанной суммы пример(Вы заказали столько-то WMZ, и после этого чтобы мне на почту приходил этот заказ с суммой и естественно емайлом клиента.)?

Здравствуйте! Можно. Причем, чтобы Вам было проще создавать подобные формы, у нас на сайте есть генератор, попробуйте воспользоваться им.


25.01.2008   серегин

мне нужно отправлять письма. помогите настроить!!!!!!!!!



08.01.2008   Д. М.

Ответ на 02.10.2007 Начинающий прохожий - вставляйте сразу после ехо, например if (!$mail->Send()) die ('Mailer Error: '.$mail->ErrorInfo);
echo '
<i><meta http-equiv="Refresh" content="6; URL=http://www.helenashop.ru/setlocation.htm"></i>



23.12.2007   Савинич Сергей

Вопрос? Сообщение уходит в папку сомнительные, как это исправить? Некоторые серверы просто не пропускают такую почту. Подскажи пожалуйста что ужно изменить.



18.12.2007   Сергей

У меня вопрос,при ошибке (второй пример) если чел не заполнил одно из полей,естеств получ ошибка,и ост часть страницы не догружается,ну то что после формы?у меня там неск ячеек таблицы



29.11.2007   vassia

Спасибо.
Все заработало на Славхосте.
Письма без проблем приходят на mail.ru



29.11.2007   Мария

Вика, предложите лучше вместо пошлого ХА-ХА свой вариант.



28.11.2007   Вика

ХА_ХА_ХА!!!КАк-же тупо!!!



22.10.2007   Армен

Здравствуйте.
Не подскажите код функции ICQ консультанта на сайте, что бы при входа в ICQ на сайте активизировалась иконка ICQ и цвет сменился на зеленый. Понимаю вопрос не по теме. Но может вы знайте как и где можно найти этот код. Спасибо заранее.

Доброго времени суток!
Если я правильно понял вопрос, то ответ Вы сможете найти здесь


19.10.2007   Shurin

Спасиб авторам.Все работет отлично, но есть проблема с передачей кириллицы. Пишу Привет получаю оПХБЕР.Поскажите,пожалуйста, в чем дело, как от этого избавиться. Заранее спасибо



13.10.2007   BraKonJer

// $to - кому отправляем
$to = 'test@test.ru';

в месте test@test.ru поменял на сваю почту. но почему то ничего не получаю на почту.. или я чето не так понял



02.10.2007   Начинающий прохожий

Подскажите, пожалуйста, куда именно вставлять код:
<i><meta http-equiv="Refresh" content="5; URL=http://www.ya.ru"></i>

Пробовал вставлять но вместо формы открывается чистая страница.
Спасибо!



28.09.2007   Дмитрий

Ах извините за беспокойство в прошлом вопросе - вопрос снят!, генератор рулит, мне этого вполне достаточно, прекрасно работает, фантастика, огромное спасибо!



27.09.2007   Дмитрий

Добрый день! Мне нужно сделать как раз отправку почты без почтовика. Я попробовал первый пример (просто скопировал и заменил на свой mail), и он что-то не пошёл.
http://www.kuntsevo.org/php.php - нет реакции
http://www.kuntsevo.org/php.htm - ругается на метод Post, но я потом прочитал что страницу надо сохр. в php, так что это всё равно неправильно..
Не могли бы вы посмотреть в чём дело?

php не отрабатывает... вопросы к настройкам хостинга.


22.09.2007   Армен

Спасибо огромное, всё сделал, работает, супер.



22.09.2007   Армен

Все сделал, работает нормально, только вот у меня задача иная, у меня форма отправки находится во многих страницах и мне бы хотелось, что бы это
<meta http-equiv="Refresh" content="5; URL=http://www.ya.ru"> переключила не на конкретный URL, а на ту страницу с которого было отправлена. Помогите пожалуйста, сам не смог. Как опознать адрес этой страницы?

<meta http-equiv="Refresh" content="5; URL=<?=$_SERVER["HTTP_REFERER"];?>">


22.09.2007   Армен

Спасибо огромное!!!



21.09.2007   Армен

Спасибо всем, очень помогли, всё сделал и работает все нормально.
Только скажите пожалуйста, как сделать, что бы после отправки или после показа ошибки автоматом через 5 секунд переключилась на ту страницу откуда было отправлено сообщение. Помогите пожалуйста.

<meta http-equiv="Refresh" content="5; URL=http://www.ya.ru">


04.09.2007   Женя

Спасибо автору!!! :)



27.08.2007   Cергей

Автору большое спасибо очень пригодилось.



01.08.2007   ЛАМЕР

а чтобы почтв работала надо этот код перенести в страницу htm и все? ну файл туда же в папку положить?
<br>я так сделал, у меня какая-то абра-кадабра получилась?



19.07.2007   Владимир

Я хачу что бы после отправки сообщения всплывала надпись "Спасибо! Ваше письмо отправлено." и через 5 секунд перебрасывало на главную страницу, чтио мне нужно добавить?



17.07.2007   Стас

У меня вот такой вопрос. К примеру пользователь допустил одну ошибку в поле E-Mail,в этом случае выдается сообщение об ошибке и все донные из формы стераются. Что сделать чтобы стералось только то поле в котором ошибка? Мой e-mail: st-as2003@mail.ru



17.07.2007   Стас

У меня вот такой вопрос. К примеру пользователь допустил одну ошибку в поле E-Mail,в этом случае выдается сообщение об ошибке и все донные из формы стераются. Что сделать чтобы стералось только то поле в котором ошибка?



29.06.2007   все класно работает!!

но, в поле "от кого" => test@test.ru
из поля Контактный email* адрес брать не хочет.
почему?
kelvin@bigmir.net



27.06.2007   lera

супер форма, большое спасибо. Единственный вопрос - приходит сообщение на почту и тема сообщения называется, естественно test@test.ru. Мне необходимо поменять ее на простое название, не е-мейл, а что-то типа "Сообщение с сайта www.site.ru". Как это сделать, подскажите, пожалуйста!



06.06.2007   Ladanka

Большое спасибо за такое подробное объяснение. У меня такая проблема: если я отправляю с прикрепленными файлами формата txt, то и приходит в формате txt. Но попробовал присоединить в формате doc, а пришло в формате doc.safe (как будто от чего то обезопасили). Изза чего может такое происходить?

Заранее благодарю за помощь!



01.06.2007   Дмитрий

как в эту строку вставить изображение вместо слова "сайт"?
$cnt_cmp .= (strlen($aOptResults["RESULTS"][$nC]["URL"])?"<br><a href=\"".$aOptResults["RESULTS"][$nC]["URL"]."\">сайт</a>":"")."<br><br>";
}



06.05.2007   Леонид

Ну, в принципе, да. Я хотел бы сообщение \&quot;Спасибо, Ваше сообщение отправлено\&quot; разместить по центру страницы. Именно страницы, а не строки.

Ну, это уже html... сделайте так:
echo '<table height="100%" width="100%"><tr><td align="center">спасибо! ваше письмо отправлено.</td></tr></table>';


04.05.2007   Аня

Леонид ты имеешь ввиду, что тебе надо слово по центру разместить



02.05.2007   Леонид

Ну вот, а ответа так и нет(((



28.04.2007   Леонид

А как "Спасибо, Ваше..." разместить посередине? Может даже посередине страницы?



26.04.2007   Аня

а чего именно хотела предложить



26.04.2007   Люба

жаль я думала ты на себя стараешся, хотела предложить тебе со мной поработать



26.04.2007   Аня

да ну...просто сис.админ...учусь я ....



26.04.2007   Люба

Ты програмист



26.04.2007   Аня

класс, а я работаю системным администратором, но вот сейчас надо было эту дурацкую форму написать, срочно...



26.04.2007   Люба

Ань, ты чем занимаешся. У меня фотостудия.



26.04.2007   Аня

Люба, да я из москвы, спасибо за помощь, просто только вот начала этим заниматься,



26.04.2007   Люба

Ань,ты сама откуда из москвы



26.04.2007   Люба

Ань,Если непонятно пиши



26.04.2007   Люба

<?php
function show_form()
{
?>
<form action="" method=post>
<div align="center">
<br />Имя*<br />
<input type="text" name="name" size="40">
<br />Фамилия*<br />
<input type="text" name="naml" size="40">
<br />Паспорт*<br />
<input type="text" name="namek" size="40">
<br />Страна*<br />
<input type="text" name="namep" size="40">
<br />Контактный телефон<br />
<input type="text" name="tel" size="40">
<br />Контактный email*<br />
<input type="text" name="email" size="40">
<br />Teма<br />
<input type="text" name="title" size="40">
<br />Сообщение*<br />
<textarea rows="10" name="mess" cols="30"></textarea>
<br /><input type="submit" value="Отправить" name="submit">
</div>
</form>
* Помечены поля, которые необходимо заполнить
<?
}

function complete_mail() {
// $_POST['title'] содержит данные из поля "Тема", trim() - убираем все лишние пробелы и переносы строк, htmlspecialchars() - преобразует специальные символы в HTML сущности, будем считать для того, чтобы простейшие попытки взломать наш сайт обломались, ну и substr($_POST['title'], 0, 1000) - урезаем текст до 1000 символов. Для переменных $_POST['mess'], $_POST['name'], $_POST['tel'], $_POST['email'] все аналогично
$_POST['title'] = substr(htmlspecialchars(trim($_POST['title'])), 0, 1000);
$_POST['mess'] = substr(htmlspecialchars(trim($_POST['mess'])), 0, 1000000);
$_POST['name'] = substr(htmlspecialchars(trim($_POST['name'])), 0, 30);
$_POST['namel'] = substr(htmlspecialchars(trim($_POST['namel'])), 0, 30);
$_POST['namek'] = substr(htmlspecialchars(trim($_POST['namek'])), 0, 30);
$_POST['namep'] = substr(htmlspecialchars(trim($_POST['namep'])), 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);
// если не заполнено поле "Имя" - показываем ошибку 1
if (empty($_POST['namel']))
output_err(1);
// если не заполнено поле "Имя" - показываем ошибку 2
if (empty($_POST['namek']))
output_err(2);
// если не заполнено поле "Имя" - показываем ошибку 3
if (empty($_POST['namep']))
output_err(3);

// если неправильно заполнено поле email - показываем ошибку 4
if(!preg_match("/[0-9a-z_]+@[0-9a-z_^\.]+\.[a-z]{2,3}/i", $_POST['email']))
output_err(4);
// если не заполнено поле "Сообщение" - показываем ошибку 5
if(empty($_POST['mess']))
output_err(5);
// создаем наше сообщение
$mess = '
Имя отправителя:'.$_POST['name'].'
Фамилия:'.$_POST['namel'].'
Паспорт:'.$_POST['namek'].'
Страна:'.$_POST['namep'].'
Контактный телефон:'.$_POST['tel'].'
Контактный email:'.$_POST['email'].'
'.$_POST['mess'];
// $to - кому отправляем
$to = 'test@test.ru';
// $from - от кого
$from='test@test.ru';
mail($to, $_POST['title'], $mess, "From:".$from);
echo 'Спасибо! Ваше письмо отправлено.';
}

function output_err($num)
{
$err[0] = 'ОШИБКА! Не введено имя.';
$err[1] = 'ОШИБКА! Неверно введен фамилия.';
$err[2] = 'ОШИБКА! Неверно введен паспорт.';
$err[3] = 'ОШИБКА! Неверно введен страна.';
$err[4] = 'ОШИБКА! Неверно введен e-mail.';

$err[5] = 'ОШИБКА! Не введено сообщение.';
echo '<p>'.$err[$num].'</p>';
show_form();
exit();
}

if (!empty($_POST['submit'])) complete_mail();
else show_form();
?>



26.04.2007   АняЛЮба

Зайди в генератор, дура!



26.04.2007   Аня

Люда,ну как получается, я уже все варианты перепробывала, грустно но ни как



26.04.2007   Аня

вот смотри я скопировала и сделала те поля какие мне надо
<?php
function show_form()
{
?>
<form action="" method=post>
<div align="center">
для того что бы преобрести домен заполните следующее
<br />Имя*<br />
<input type="text" name="name" size="40">
<br />Фамилия*<br />
<input type="text" name="name" size="40">
<br />Данные о паспарте(серия и номер)*<br />
<input type="text" name="name" size="40">
<br />Страна*<br />
<input type="text" name="name" size="40">
<br />Адрес*(улица, дом, квартира)<br />
<input type="text" name="name" size="40">
<br />Контактный телефон<br />
<input type="text" name="tel" size="40">
<br />Контактный email*<br />
<input type="text" name="email" size="40">
<br />Teма<br />
<input type="text" name="title" size="40">
<br />с какой целю нужен домен*<br />
<textarea rows="10" name="mess" cols="30"></textarea>
<br /><input type="submit" value="Отправить" name="submit">
</div>
</form>
* Помечены поля, которые необходимо заполнить
<?
далше код тотже, просто мне на почту не приходят, данные паспарта, страна, адрес, фамилия, как это сделать,



26.04.2007   Люба

Ань напиши что тебе нужно,точнее что добавить я тебе сделаю



26.04.2007   Люба

У меня все работает, теперь могу подсказать даже написать!



26.04.2007   Аня

Люба у тебя получилось или ты так и делала?
<br>&lt;br&gt;а ты пробывала себе поля дополнять у тебя получилос



26.04.2007   Аня

блн ну я так и сделала, ко мне как приходило на почту так и приходит то что было до этого, Имя, тел, email, сообщение, и все а те поля не приходят мне на почту.
а блокнот самй обычнй, просто я сначало через дрмвевир делала, у меня тоже были закорючки)))потом скопировала этот код в блокнот и сохранила .php



26.04.2007   Люба

Ань копируй:<br />Имя*<br />
<input type="text" name="name" size="40">
Только вместо имени пиши то что надо.Ань а в каком блокноте ты сохранила?



26.04.2007   Аня

ну у меня получилось сделать дополнительные поля на на почту они не приходят



26.04.2007   Аня

Люба,У меня тоже было так, но потом я сохранила все в блакноте и нормальн



26.04.2007   Аня

Он мне выдает 404 ошибку, может не то копирую?
блин



26.04.2007   Люба

Почему сообщения доходят у меня в ероглифах.Кто знает?Где ошибка?



26.04.2007   Люба

Ань ты просто скопируй и все, самое главное что бы доходило на русском



26.04.2007   Аня

блин у меня чего самый тупой вопрос, но правда не знаю как это сделать, но очень надо скажите плиззз



26.04.2007   Аня

что бы и номер телефона приходил и еще мне парачку данных надо дописать, подскажите как пожалуйста



26.04.2007   Аня

подскажите пожалуйста, пользуюсь вашей формой но хочу что бы на почту приходили еще другие данные, как их дописать



26.04.2007   Люба

Почему молчим, я вас достала?



26.04.2007   Люба

Спасибо,вам большое я его получила! но почему ероглифах,ошибка в чем?



26.04.2007   Люба

Почему молчите, подскажите я уже близка к цели, толь ко узнать почему они на мой адрес не доходят



26.04.2007   Люба

Знаете, у меня все открылось и отправилось но я его не получила! Где оно, как вы думаете, может мне в коде нужно было свой эл. адрес где нибудь поставить?

Я думаю, либо меня кто-то из друзей развлекает, либо Вам лень открыть глазки и посмотреть коментарии
        // $to - кому отправляем
        
$to = 'test@test.ru';


26.04.2007   Люба

Это опять я, вот сохранила с разрешением php страницу, а она у меня открываться не хочет( я ее сохранила в ковычках, как и html)



26.04.2007   Люба

И еще, где мне нужно указать свой эл. адрес, что бы отправлялось ко мне.

        // $to - кому отправляем
        
$to = 'test@test.ru';


26.04.2007   Люба

Скажите пожалуйста, нужно ли мне вставить, между кавычками файл index.php(это моя почта)<form action="" method=post> .Я читала в книжке что нужно вставлять папку и файл,может из-за этого у меня неработает почта?

хм... Вы сами понимаете, что спрашиваете?


26.04.2007   Люба

Как можно настроить сервер и подключить РОSТ метод

http://forums.webscript.ru/printthread.php?threadid=8867


26.04.2007   Люба

После того как я нажала на кнопку отправить у меня появилось это:

Method Not Allowed
The requested method POST is not allowed for the URL /sumWL.htm.


--------------------------------------------------------------------------------

Apache/1.3.37 Server at www.flfotto.ru Port 80

надо настраивать сервер, подключать POST метод


26.04.2007   Люба

Скажите пожалуйста, куда нужно разместить данный код, в папку cgi-bin или на страницу сайта

на страницу сайта. Только сделайте у страницы расширение php (chto_ugodno.php)


25.04.2007   Леонид

И снова я. А как сделать сообщения об ошибке красного цвета? Поставить в сообщениях &amp;lt;font&amp;gt; не удалось.


    $err
[1] = 'ОШИБКА! Неверно введен e-mail.';
    
$err[2] = 'ОШИБКА! Не введено сообщение.';
    echo
'<p><font color="red">'.$err[$num].'</font></p>';
    


25.04.2007   Леонид

С предыдущим вопросом разобрался - Опера удивляет. Как всегда. Но еще вопрос. Вставил код для "отмены флуда". После отправки выдает постоянно следующее:Warning: fopen(antiflood.txt) [function.fopen]: failed to open stream: No such file or directory in /home/binform/public_html/new/contacts.php on line 106

Warning: filesize() [function.filesize]: Stat failed for antiflood.txt (errno=2 - No such file or directory) in /home/binform/public_html/new/contacts.php on line 107

Warning: fread(): supplied argument is not a valid stream resource in /home/binform/public_html/new/contacts.php on line 107

Warning: fclose(): supplied argument is not a valid stream resource in /home/binform/public_html/new/contacts.php on line 108

Warning: fopen(antiflood.txt) [function.fopen]: failed to open stream: Permission denied in /home/binform/public_html/new/contacts.php on line 111

Warning: fputs(): supplied argument is not a valid stream resource in /home/binform/public_html/new/contacts.php on line 112

Warning: fclose(): supplied argument is not a valid stream resource in /home/binform/public_html/new/contacts.php on line 113
Спасибо! Ваше письмо отправлено.

Как бороться?

создайте файл antiflood.txt


24.04.2007   Леонид

Всё очень интересно, но непонятно. Копирую код из верзнего окошка, вставляю в РНР-страницу. Все окна показывает как надо, но в конце выдает * Помечены поля, которые необходимо заполнить '; show_form(); exit(); } if (!empty($_POST['submit'])) complete_mail(); else show_form(); ?>
Что это?



15.04.2007   Dmitry

Спасибо большое! Всё заработало!!! Ура!!!!!!



14.04.2007   Dmitry

Аааааааааааааааааааааааааааа!!!!!!!!!!!!!
Никак не могу понять, почему не работает. Письмо не отсылается, проверка не происходит, хотя проверил всё в PHP Expert Editor 4.1.:-(((( ПОМОГИТЕ ПОЖАЛУЙСТА!!!!!
Сам код:
<?php
function show_form()
{
?>
<FORM action="" method="POST">
<TABLE border="0" cellpadding="0" cellspacing="15">
<TR align="left">
<TD width="200">Название книги:</TD>
<TD width="400">
<INPUT type="text" name="nazvanie" value="<?=substr(htmlspecialchars(trim($_POST['nazvanie'])), 0, 200);?>">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
(<A target="_blank" href="katalog.html">см. Каталог книг</A>)</TD>
</TR>
<TR align="left">
<TD width="200">Её порядковый номер:</TD>
<TD width="400">
<INPUT type="text" name="nomer" value="<?=substr(htmlspecialchars(trim($_POST['nomer'])), 0, 100);?>">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
(<A target="_blank" href="katalog.html">см. Каталог книг</A>)</TD>
</TR>
<TR align="left">
<TD width="200">Ваши фамилия, имя, отчество:</TD>
<TD width="400">
<INPUT type="text" name="fio" value="<?=substr(htmlspecialchars(trim($_POST['fio'])), 0, 200);?>"></TD>
</TR>
<TR align="left">
<TD width="200">Ваш e-mail:</TD>
<TD width="400"><INPUT type="text" name="email" value="<?=substr(htmlspecialchars(trim($_POST['email'])), 0, 100);?>"></TD>
</TR>
<TR align="left">
<TD width="200">Адрес(почтовый индекс, город, улица, дом, корпус,
кв.). :</TD>
<TD width="400">
<TEXTAREA rows="6" cols="30" name="adres"><?=substr(htmlspecialchars(trim($_POST['adres'])), 0, 1000000);?></TEXTAREA></TD>
</TR>
<TR align="left">
<TD width="200">Дополнительная информация:</TD>
<TD width="400">
<TEXTAREA rows="10" cols="40" name="dopolnitelno"><?=substr(htmlspecialchars(trim($_POST['dopolnitelno'])), 0, 1000000);?></TEXTAREA></TD>
</TR>
<TR align="left">
<TD width="200"></TD>
<TD width="400">
<INPUT type="submit" value="Отправить" style="background:#66FFFF; font-size: 14px; color: #CC0066;font-weight:700">&nbsp;
<INPUT type="reset" value="Очистить" style="background:#66FFFF; font-size: 14px; color: #CC0066;font-weight:700">
</TD>
</TR>
<TR>
<B><FONT color="red">Внимание! Стоимость пересылки книги составляет
80 рублей.</FONT></B></TR>
</TR>
</TABLE>
</FORM>
<BR>
<P>&nbsp;</P>
<P>&nbsp;</P>
<P>&nbsp;</P>
<P>&nbsp;</P>
<P>&nbsp;</P>
<P>&nbsp;</P>
<P>&nbsp;</P>
<P>&nbsp;</P>
<P>&nbsp;</P>
</TD>
<TD width="40">&nbsp;</TD>
</TR>
<TR>
<TD background="../img/bg2.gif" align="center" colspan="5" height="36">
<SPAN class="style2">Copyright © 2007 КнигАвто
Все права защищены</SPAN> </TD>
</TR>
</TABLE>

</BODY>

</HTML>
<?
}
function complete_mail() {
$_POST['nazvanie'] = substr(htmlspecialchars(trim($_POST['nazvanie'])), 0, 200);
$_POST['nomer'] = substr(htmlspecialchars(trim($_POST['nomer'])), 0, 100);
$_POST['fio'] = substr(htmlspecialchars(trim($_POST['fio'])), 0, 200);
$_POST['email'] = substr(htmlspecialchars(trim($_POST['email'])), 0, 100);
$_POST['adres'] = substr(htmlspecialchars(trim($_POST['adres'])), 0, 1000000);
$_POST['dopolnitelno'] = substr(htmlspecialchars(trim($_POST['dopolnitelno'])), 0, 1000000);
$_POST['title'] = 'Заказ книги';
if(empty($_POST['nazvanie']))
output_err(0);
if(empty($_POST['nomer']))
output_err(1);
if(empty($_POST['fio']))
output_err(2);
if(empty($_POST['email']))
output_err(3);
if(empty($_POST['adres']))
output_err(4);
$mess = '
Название книги: '.$_POST['nazvanie'].' <BR>
Её порядковый номер: '.$_POST['nomer'].' <BR>
Ваши фамилия, имя, отчество: '.$_POST['fio'].' <BR>
Ваш e-mail: '.$_POST['email'].' <BR>
Адрес(почтовый индекс, город, улица, дом, корпус, кв.). : '.$_POST['adres'].' <BR>
Дополнительная информация: '.$_POST['dopolnitelno'].' ';
$to = 'мыло@yandex.ru';
$from = $_POST['email'];
$headers = 'From: '.$from . "\r\n" .'Content-type: text/plain; charset="windows-1251"' . "\r\n";
mail($to, $_POST['title'], $mess, $headers);
echo "Ваша заявка принята. Спасибо за заказ!<BR>
Введённые данные:<BR><BR>
$mess <BR>
<P>&nbsp;</P>
<P>&nbsp;</P>
<P>&nbsp;</P>
<P>&nbsp;</P>
<P>&nbsp;</P>
<P>&nbsp;</P>
<P>&nbsp;</P>
<P>&nbsp;</P>
<P>&nbsp;</P>
<P>&nbsp;</P>
<P>&nbsp;</P>
<P>&nbsp;</P>
<P>&nbsp;</P>
<P>&nbsp;</P>
<P>&nbsp;</P>
<P>&nbsp;</P>
<P>&nbsp;</P>
<P>&nbsp;</P>
<P>&nbsp;</P>
<P>&nbsp;</P>
<P>&nbsp;</P>
<P>&nbsp;</P>
<P>&nbsp;</P>
<P>&nbsp;</P>
</TD>
<TD width='40'>&nbsp;</TD>
</TR>
<TR>
<TD background='../img/bg2.gif' align='center' colspan='5' height='36'>
<SPAN class='style2'>Copyright © 2007 КнигАвто
Все права защищены</SPAN> </TD>
</TR>
</TABLE>

</BODY>

</HTML>";
}

function output_err($num)
{
$err[0] = '<font color = "red"><h3>ОШИБКА! Не введено название книги.</h3></font>';
$err[1] = '<font color = "red"><h3>ОШИБКА! Не введён порядковый номер книги.</h3></font>';
$err[2] = '<font color = "red"><h3>ОШИБКА! Не введены ФИО.</h3></font>';
$err[3] = '<font color = "red"><h3>ОШИБКА! Не введен e-mail.</h3></font>';
$err[4] = '<font color = "red"><h3>ОШИБКА! Не введен адрес.</h3></font>';
echo '<p>'.$err[$num].'</p>';
show_form();
exit();
}
if (!empty($_POST['submit'])) complete_mail();
else show_form();
?>

строку 42 замени на: <INPUT type="submit" name="submit" value="Отправить" style="background:#66FFFF; font-size: 14px; color: #CC0066;font-weight:700"> 


16.03.2007   NickN

Странно, на яндекс приходит, а на рамблер нет ((



13.03.2007   NickN

Пишет 'Спасибо! Ваше письмо отправлено.' Никаких ошибок не выводит. Но до ящика сообщение не доходит.



26.02.2007   Наталья

Огромное Вам спасибо! Все замечательно, все работает!
Только один вопрос - пытаюсь вставить вместо кнопки "submit" графическое изображение
<input type="image" name="submit" src="i/send.gif" border="0"> - страница просто обновляется, отправки формы не происходит. Что же у меня не так?

Замените
<input type="image" name="submit" src="i/send.gif" border="0">
на
<input type="hidden" value="1" name="submit" border="0"><input type="image" src="i/send.gif" border="0">


14.02.2007   Евгения

Странно, но ошибка исчезла! Код программы я не трогала. О как!



14.02.2007   Евгения

вы написали как избавиться от отправки писем при многократном обновлении странице, но у меня выдается ошибка:
Warning: fread(): Length parameter must be greater than 0. in /home/europot/public_html/letter.htm on line 97
Ваше письмо отправлено!

Как эту ошибку исправить?



13.02.2007   Myserver.com.ua

Вот эту проверку обязательно нужно подправить
(на скольких сайтах встречаю одну и ту же ошибку - немеряно!!):
if(!preg_match("/[0-9a-z_]+@[0-9a-z_^\.]+\.[a-z]{2,3}/i", $_POST['email']))
output_err(1);
так как она cрежет вполне нормальные емайлы типа
vasiliy.pupkin@company.ru
vasiliy@pupkin.net.ru
vasiliy-pupkin@abc-mail.ru
А вот подчеркиваний в доменах что-то ни разу не встрачал :)

if(!preg_match("/[0-9a-z_\.\-]+@[0-9a-z_^\.\-]+\.[a-z]{2,3}/i", $_POST['email']))
output_err(1);


09.02.2007   SK

Еще вопрос: сделал я формы по тому принципу, как тут описано, все отправляет, супер... но я нажимаю обновить в браузере и что вы думаете: пишет сообщение отправлено, и в моем случае еще текст сообщения, и снова отправляет его... и так до бесконечности... как бороться?

Вы знаете, у меня очень много сайтов с такими формами, пока не спамили многократными обновлениями ни разу. Вопрос интересный, я подумаю, потом, если найду решение, подредактирую это сообщение ;-) И вот Вам решение:
Можно заменить строку

mail
($to, $_POST['title'], $mess, "From:".$from);


на:

$filename
= "antiflood.txt";
$handle = fopen($filename, "r");
$contents = fread($handle, filesize($filename));
fclose($handle);

if(
$contents != $mess){
     
$file = fopen("antiflood.txt", "w");
     
fputs ($file, $mess);
     
fclose ($file);
     
mail($to, $_POST['title'], $mess, "From:".$from);
}

Таким образом мы не дадим отправить несколько одинаковых мессаг подряд. При этом флудильщик будет думать, что письма отправляются, а на деле этого происходить не будет ;-) Следовательно и он доволен, и мы ;-)


09.02.2007   Света

Мне интересно, почему здесь не надо ничего вставлять в кавычки <form action="" method=post> ?
Спасибо.

В кавычках после action указывается имя скрипта, который обрабатывает форму. Поскольку мы обрабатываем форму в этом же файле, его название можно не указывать.



08.02.2007   SK

Как сделать, чтобы скрипт не стирал информацию из ранее введенных граф. Поясняю: я ввел имя, телефон, мыло, а сообщение не ввел, а случайно нажал отправить. в результате скрипт сказал, что сообщение не введено и... стер уже правильно введенные данные: имя, мыло, телефон.

Посмотрите чуть ниже ответ на вопрос Олега от 31.01.2007


01.02.2007   Игорь

Подскажите, как вставльть html теги в сформированное сообщение

попробуйте заменить:
$from='test@test.ru';
mail($to, $_POST['title'], $mess, "From:".$from);
на
$mess .= '<b> bold </b> ';
$from='test@test.ru';
$headers = 'From: '.$from . "\r\n" .
'MIME-Version: 1.0' . "\r\n";
$headers .= 'Content-type: text/html; charset=Windows-1251' . "\r\n";
mail($to, $_POST['title'], $mess, $headers);


01.02.2007   Oleg

$mess = 'Уважаемый ';
$mess.=$_POST['myname'];
$mess.=' ';
$mess.=$_POST['lastname'];
$mess .=' Компания ООО "Изобилие" приветствует Вас на нашем сайте.
Вот Ваш логин: Oleg'. '
\t\n'.'пароль: 123
Теперь Вы можете отправлять запросы по Vin\'у и по номеру детали.';

$to = $_POST['email'];
$from='Admin semar.ru';
$title='Личные параметры';
$headers = 'From: '.$from . "\r\n" .
'Content-type: text/plain; charset="Windows-1251"' . "\r\n";
mail($to, $title, $mess, $headers);
echo 'Спасибо за регистрацию. Ваши параметры для отправки запросов высланы Вам по электронноц почте';

Подскажите рожалуйста, почему не воспринемается символ табнляции?



31.01.2007   Олег

Все, сам разобрался. Надо было выбрать кодировку



31.01.2007   Олег

Подскажите еще, пожалуйста, как настроить кодировку для почты. Мне в Outlook'e приходит какя-то окалесица.
Пробовал так:<?php echo "<?xml version=\"1.0\" encoding=\"windows-1251\"?".">"; ?>

Я Outlook'ом не пользуюсь, поэтому проверить не могу, но попробуйте заменить:
$from='test@test.ru';
mail($to, $_POST['title'], $mess, "From:".$from);
на
$from='test@test.ru';
$headers = 'From: '.$from . "\r\n" .
'Content-type: text/plain; charset="windows-1251"' . "\r\n";
mail($to, $_POST['title'], $mess, $headers);


31.01.2007   Олег

Подскажите как сделать чтоб при ошибке текст в полях не стирался.
Пробовал добавит value="$переменная", не работает. Переменная воспринемается как строка.
Пример: <input type="text" name="title" value="title"> size="40">

Попробуйте так:
<input type="text" name="title" value="<?=substr(htmlspecialchars(trim($_POST['title'])), 0, 100);?>" size="40">
// ниже пояснения,в код добавлять необязательно
// <?= - это тоже самое, что и <?php echo
// данные из формы передаем методом POST, поэтому наша переменная будет лежать в $_POST['title'], а функции которые я добавил, помогут Вам защитить Ваш сайт от попыток взлома, как они работают можете посмотреть в коде примера


31.01.2007   Мариша

Отлично! Спасибо!



19.01.2007   Papai

дак на ящик не чего ни приходит

Пишет при выполнении какую-нибудь ошибку?


19.01.2007   гыгы

сами себе сообщения пишите? ;)

неа, зачем мне это?


05.01.2007   Григорьев Филипп

Этот скрипт - то что мне надо. Но как сотворить документ *.php?

Как вариант, откройте блокнот, выберите "Файл" --> "Сохранить как". При сохранении выберите тип файла: "Все файлы", а в имени файла пишите "название.php" (без кавычек). Если не получится, скачайте PHP Expert Editor 3.3

(c) Janda.ru