EOMY.NET
Хостинг EOMY.NET: Форум поддержки
 
 FAQFAQ   ПоискПоиск   ПользователиПользователи   ГруппыГруппы   РегистрацияРегистрация 
 ПрофильПрофиль   Войти и проверить личные сообщенияВойти и проверить личные сообщения   ВходВход 
RSS Feed  

Проблема с отправкой почты
На страницу 1, 2  След.
 
Начать новую тему   Ответить на тему    Список форумов EOMY.NET -> Программирование для WEB
Проблема с отправкой почты
Автор Сообщение
Johnny
Два пингвина
Два пингвина


Зарегистрирован: 28.06.2008
Сообщения: 466
Откуда: Краснодар
878 Монеты

СообщениеДобавлено: Вс, 23 Авг, 2009 13:46    Заголовок сообщения: Проблема с отправкой почты Ответить с цитатой

Следующая проблема. Вот скрипт:
Код:
<? // WR-sendmail v 1.3.1  //  19.01.08 г.  //  Miha-ingener@yandex.ru

$myemail="***@***";  // Ваш электронный адрес
$refreshpage="sendmail.php";  // Страница, куда возвращается человек после отправки сообщения
$antispam="1"; // 1/0 вкл.выкл АНТИСПАМ
$maxname="30";   // Максимальное кол-во символов в имени
$maxtema="50"; // максимум символов в теме
$maxmsg="1500";  // Максимальное количество символов в сообщении

// Далее настраивается цвет таблицы и текста: цвет таблицы и цвет текста в заголовке таблицы
// Для Выбора схемы - раскоментируйте её и закоментируйте текущую символами //
$bdcolor="#000000";  $fcolor="#FFFFFF";  // Светлоголубой
//$bdcolor="#FF9A00"; $fcolor="#FFFFFF";   // Оранжевый
//$bdcolor="#FFE51A"; $fcolor="#00253B";   // Жёлтый
//$bdcolor="#00E900"; $fcolor="#00253B";   // Светло-зеленый
//$bdcolor="#007800"; $fcolor="#FFFFFF";   // Темно зеленый
//$bdcolor="#D2A500"; $fcolor="#FFFFFF";   // Золотой
//$bdcolor="#BCC0C0"; $fcolor="#FFFFFF";   // Серый
//$bdcolor="#00253B"; $fcolor="#FFFFFF";   // Темно-синий

$addstyle="style='font-family: Verdana; font-size: 12px; text-decoration: none; color: #ffffff; cursor: default; background: #000000 url(http://kozachuk.net/images/bg.jpg); border-style: solid; border-width: 1px; border-color: #ffffff;'";
$shapka="<html><head><META http-equiv=Content-Type content='text/html; charset=utf-8'></head><BODY background=#000000 url(http://kozachuk.net/images/bg.jpg)";
$back="<center>Вернитесь <a href='javascript:history.back(1)'><B>назад</B></a>"; // Удобная строка


// Для цифрозащиты антиспам:
$maxkey=4; // Колличество символов в коде  (можно изменять)
$absrand="676756";// Случайное число. Используется для цифрозащиты. Генерировать его нужно случайно при настройке или изменении конфигурации скрипта.
if (isset($_GET['image'])) {
// Функция с цифрами защиты
$st="R0lGODlhCgAMAIABAFNTU////yH5BAEAAAEALAAAAAAKAAwAAAI"; // общая часть для всех рисунков
function imgwr($st,$num){
 if ($num=="0") {$len="63"; $number=$st."WjIFgi6e+QpMP0jin1bfv2nFaBlJaAQA7";}
 if ($num=="1") {$len="61"; $number=$st."UjA1wG8noXlJsUnlrXhE/+DXb0RUAOw==";}
 if ($num=="2") {$len="64"; $number=$st."XjIFgi6e+QpMPRlbjvFtnfFnchyVJUAAAOw==";}
 if ($num=="3") {$len="64"; $number=$st."XjIFgi6e+Qovs0RkTzXbj+3yTJnUlVgAAOw==";}
 if ($num=="4") {$len="64"; $number=$st."XjA9wG8mWFIty0amczbVJDVHg9oSlZxQAOw==";}
 if ($num=="5") {$len="63"; $number=$st."WTIAJdsuPHovSKGoprhs67mzaJypMAQA7";}
 if ($num=="6") {$len="63"; $number=$st."WjIFoB6vxmFw0pfpihI3jOW1at3FRAQA7";}
 if ($num=="7") {$len="61"; $number=$st."UDI4Xy6vtAIzTyPpg1ndu9oEdNxUAOw==";}
 if ($num=="8") {$len="63"; $number=$st."WjIFgi6e+QpMP2slSpJbn7mFeWDlYAQA7";}
 if ($num=="9") {$len="64"; $number=$st."XjIFgi6e+QpMP0jinvbT2FGGPxmlkohUAOw==";}
 header("Content-type: image/gif");
 header("Content-length: $len");
 echo base64_decode($number); }
// Вывод изображений на экран (все кодированы - робот не пройдёт)
if (array_key_exists("image", $_REQUEST)) { $num=$_REQUEST["image"];
for ($i=0; $i<10; $i++) {if (md5($i+$absrand)==$num) {imgwr($st,$i); die();}} }
exit;}

//******************* Ниже лучше ничего не трогать ************************//

// Событие проверки на ошибки и отправки сообщения //
if (isset($_GET['event'])) { if ($_GET['event']=="add")  {

sleep(1); // мелкая защита от БОТОВ. Человеку секунда не время - а прога по подбору ключа - будет работать долго и не загружать сервер

if ($antispam!="0") {
$bada="$shapka $back <font color=red>Введённый вами код НЕ верен</font>!";
if (isset($_POST['usernum'])) {$usernum=$_POST['usernum'];} else {print"$bada"; exit;}
if (isset($_POST['xkey'])) {$xkey=$_POST['xkey'];} else {print"$bada"; exit;}
$userkey=md5("$usernum+$absrand");
if ($userkey!=$xkey) {print"$bada"; exit;}}

if (!isset($_POST['name'])) {print"$shapka $back Вы не ввели имя!";} else {$name=$_POST['name'];}
if (!isset($_POST['email'])) {print"$shapka $back Вы не ввели емайл!";} else {$email=$_POST['email'];}
if (!isset($_POST['tema'])) {print"$shapka $back Вы не ввели тему!";} else {$tema=$_POST['tema'];}
if (!isset($_POST['msg'])) {print"$shapka $back Вы не ввели сообщение!";} else {$msg=$_POST['msg'];}
if ($name=="" || strlen($name)>$maxname) {print "$shapka $back Вы не ввели имя, или вввели слишком длинное имя!</B></center>"; exit;}
if ($msg=="" || strlen($msg)>$maxmsg) {print "$shapka $back Ваше сообщение или пустое или превышает $maxmsg символов.</B></center>"; exit;}
//if ($tema=="" || strlen($tema)>$maxtema) {print "$shapka $back Вы не ввели тему!</B></center>"; exit;}
if(!preg_match("/^[a-z0-9\.\-_]+@[a-z0-9\-_]+\.([a-z0-9\-_]+\.)*?[a-z]+$/is", $_POST['email']) or $_POST['email']=="") {print "$shapka $back и введите корректный E-mail адрес!</B></center>"; exit;}

// Защита от взлома
$name=str_replace("|","|",$name);
$tema=str_replace("|","|",$tema);
$msg=str_replace("|","|",$msg);
$text="$name|$tema|$email|$msg|";
$text=str_replace(" ",' ',$text);
$text=str_replace("&",'&amp;',$text);
$text=str_replace(">",'&gt;',$text);
$text=str_replace("<",'&lt;',$text);
$text=str_replace("\"",'&quot;',$text);
$text=preg_replace("/\n\n/",'<p>',$text);
$text=preg_replace("/\n/",'<br>',$text);
$text=preg_replace("/\\\$/",'$',$text);
$text=preg_replace("/\r/",'',$text);
$text=stripslashes($text);
$text=preg_replace("/\\\/",'\',$text);
$text=str_replace("\r\n","<br> ",$text);
$text=str_replace("\n\n",'<p>',$text);
$text=str_replace("\n",'<br> ',$text);
$text=str_replace("\t",'',$text);
$text=str_replace("\r",'',$text);
$text=str_replace('   ',' ',$text);
$exd=explode("|",$text); $name=$exd[0]; $tema=$exd[1]; $email=$exd[2]; $msg=$exd[3];


$host=$_SERVER["HTTP_HOST"]; $self=$_SERVER["PHP_SELF"]; $smailurl="http://$host$self";

$date=date("d.m.Y"); // число.месяц.год
$time=date("H:i:s"); // часы:минуты:секунды

// Настройки для отправки писем
$headers=null;
$headers.="Content-Type: text/html; charset=utf-8\r\n";
$headers.="From: ".$name." <".$email.">\r\n";
$headers.="X-Mailer: PHP/".phpversion()."\r\n";

// Собираем всю информацию в теле письма
$allmsg="<html><head><title>Сообщение успешно отправлено!</title><meta http-equiv='Content-Type' content='text/html; charset=utf-8'>
<style>BODY {background:#000000 url(http://kozachuk.net/images/bg.jpg); FONT-FAMILY: verdana,arial,helvetica; FONT-SIZE: 13px;} TD {FONT-SIZE: 12px;}</style></head>
<body background=/images/bg.jpg>
<img src=/http://kozachuk.net/gallery_logo.png>
<center><table border=1 cellpadding=6 cellspacing=0 width=550 bordercolor='#DBDBDB'>
<tr><td colspan=2 align=center bgcolor='#E4E4E4'><B>Информация</B></td></tr>
<tr bgcolor='#F2F2F2'><td width=117>Имя:</td><td width=433><B>$name</B></td></tr>
<tr bgcolor='#F8F8F8'><td>E-mail:</td><td><B>$email</B></td></tr>
<tr bgcolor='#F8F8F8'><td>Дата отправки:</td><td>$time - $date г.</td></tr>
<tr bgcolor='#F8F8F8'><td>Тема:</td><td><B>$tema</B></td></tr>
<tr bgcolor='#F2F2F2'><td>Текст:</td><td>$msg</td></tr>
</table><center><BR><font color=white>Ваше сообщение</font> <B><font color=navy>успешно отправлено</font></B><BR><BR>
<a href='$refreshpage'>Вернуться <B>назад</B></a>";
$printmsg="$allmsg </body></html>";
$allmsg.="<BR><BR><BR>* Это сообщение сгенерировано и отправлено роботом с формы обратной связи. Отвечать на него не нужно.</body></html>";

// Отправляем письмо майлеру на съедение ;-)
mail("$myemail", "Обратная связь. Сообщение от $name", $allmsg, $headers);

// Пишем пользователю "Спасибо" и обновляем страницу через JavaScript
print "<script language='Javascript'>function reload() {location = \"$refreshpage\"}; setTimeout('reload()', 3000);</script>$printmsg"; exit;
}

}  else  {   // Типо главной страницы


print "<HTML><head><title>Обратная связь - Фотограф Катерина Козачук</title><META content='text/html; charset=utf-8' http-equiv=Content-Type></head>
<BODY background=/images/bg.jpg><center>
<table border=0 width=100% height=500 cellpadding=1 cellspacing=0 background=/images/bg.jpg><tr><td>
<table border=0 width=100% cellpadding=1 cellspacing=0 background=/images/bg.jpg><tr><td>";

print "
<img src=http://kozachuk.net/gallery_logo.png>
</td></tr><tr><td colspan=2 width=100% background=/images/bg.jpg><center>
<form action=sendmail.php?event=add method=post name=REPLIER>
<table border=0 cellpadding=0 cellspacing=0 width=800>
<tr><td>&nbsp;</TD></TR>
<tr><td><B><font color=white>Имя:&nbsp;&nbsp;</B></font><br> <input type=text $addstyle value='' maxlength=$maxname name=name size=27><br>
<font color=white><B>Ваш E-mail:&nbsp;&nbsp;</B></font><br> <input type=text $addstyle value='' name=email size=27></td></tr><br>
<tr><td><font color=white><B>Тема сообщения:&nbsp;&nbsp;</B></font><br><input type=text $addstyle value='' maxlength=$maxtema name=tema size=60></td></tr>
<tr><td><font color=white><B>Сообщение:</B></font></td></tr>
<tr><td><textarea $addstyle cols=80 rows=10 size=500 name=msg></textarea>";

// Антиспам
if ($antispam!="0") {

// Вывод изображений на экран (все кодированы - робот не пройдёт)
if (array_key_exists("image", $_REQUEST)) { $num=$_REQUEST["image"];
for ($i=0; $i<10; $i++) {if (md5($i+$absrand)==$num) {imgwr($st,$i); die();}} }

$xkey=""; mt_srand(time()+(double)microtime()*1000000);

print"<TR><TD><font color=white><B>Защитный код:</B></font> &nbsp;&nbsp;";
for ($i=0; $i<$maxkey; $i++) {
$snum[$i]=mt_rand(0,9); $psnum=md5($snum[$i]+$absrand);
$phpself=$_SERVER["PHP_SELF"];
echo "<img src=$phpself?image=$psnum border='0' alt=''>\n";
$xkey=$xkey.$snum[$i];
}
$xkey=md5("$xkey+$absrand");

print"&nbsp;&nbsp; <input name='usernum' $addstyle type='text' maxlength=$maxkey size=8><input name=xkey type=hidden value='$xkey'>&nbsp;&nbsp; <small><font color=white>(введите число, указанное на картинке)</font></small></TD></TR>";
}


print"<TR><TD colspan=3><br><input type=submit $addstyle value='Отправить'></form></td></tr></table>";
}

?>

</td></tr></table></td></tr></table><BR></body></html>

http://kozachuk.net/contacts/
Всё отображается, после написания сообщения выводится страница "Сообщение отправлено", но на почтовом ящике ничего нет. Проблема в скрипте или что-то с хостингом?
_________________
Вернуться к началу
Посмотреть профиль Отправить личное сообщение Посетить сайт автора
-=Virtus pro=-
Два пингвина
Два пингвина


Зарегистрирован: 18.02.2008
Сообщения: 427
Откуда: Россия, г Омск
4217 Монеты

СообщениеДобавлено: Вс, 23 Авг, 2009 14:19    Заголовок сообщения: Ответить с цитатой

А ты уверен что в спам почтовик не кинул твое сообщение? Скрипт рабочий, где то видел его, юзал давно.
_________________
www.amxserv.net - Все для вашего CS сервера

Код:
if(isset($beer)) drink($beer);
Вернуться к началу
Посмотреть профиль Отправить личное сообщение Отправить e-mail Посетить сайт автора
vohomov
Хостинг — это наше всё!
Хостинг — это наше всё!


Зарегистрирован: 17.07.2009
Сообщения: 183

20631 Монеты

СообщениеДобавлено: Вс, 23 Авг, 2009 16:29    Заголовок сообщения: Ответить с цитатой

Ну... у вас здесь столько наворотов... а проверки - отправлено письмо или нет - не предусмотрено. В коде голый вызов mail(), а вобще sendmail возвращает всегда значения завершения выполнения - отправлено письмо или ошибка. Причём в функции mail() это от sendmail'a считывается и в выполнение скрипта функция возвращает 1 или 0. Поэтому замените строки
Код:
mail("$myemail", "Обратная связь. Сообщение от $name", $allmsg, $headers);

// Пишем пользователю "Спасибо" и обновляем страницу через JavaScript
print "<script language='Javascript'>function reload() {location = \"$refreshpage\"}; setTimeout('reload()', 3000);</script>$printmsg"; exit;

на строки:
Код:

if(mail("$myemail", "Обратная связь. Сообщение от $name", $allmsg, $headers)) {
 print "<script language='Javascript'>function reload() {location = \"$refreshpage\"}; setTimeout('reload()', 3000);</script> <b>Сообщение отправлено.</b>$printmsg";
 exit;
}
else {
print "<script language='Javascript'>function reload() {location = \"$refreshpage\"}; setTimeout('reload()', 3000);</script> <b>Сообщение НЕ отправлено!!!</b>$printmsg";
exit;
}

Теперь будет честно писать, отправлено или нет. Однако в самом конце всё равно будет говорить "спасибо" - такой уж скрипт.
+ ещё могу сказать - здесь страшно мучительные вызовы print() - автор скрипта (понимаю, что не вы) мог бы использовать схему "document here" - это гораздо проще и удобней.
--
P.S. Человек, написвший скрипт или новичёк или издевается:
Код:
mail("$myemail", "Обратная связь. Сообщение от $name", $allmsg, $headers);
Переменная myemail зачем-то ещё дополнительно заключена в кавычки. Без кавычек нельзя, как же... просто написать
Код:
mail($myemail, "Обратная связь. Сообщение от $name", $allmsg, $headers);
автор скрипта не мог.
_________________
Любителям и знатокам географии | Помощь по химии онлайн
Вернуться к началу
Посмотреть профиль Отправить личное сообщение Посетить сайт автора
Johnny
Два пингвина
Два пингвина


Зарегистрирован: 28.06.2008
Сообщения: 466
Откуда: Краснодар
878 Монеты

СообщениеДобавлено: Вс, 23 Авг, 2009 20:09    Заголовок сообщения: Ответить с цитатой

-=Virtus pro=-
уверен, я не настолько дилетантен в этом вопросе Wink
_________________
Вернуться к началу
Посмотреть профиль Отправить личное сообщение Посетить сайт автора
Johnny
Два пингвина
Два пингвина


Зарегистрирован: 28.06.2008
Сообщения: 466
Откуда: Краснодар
878 Монеты

СообщениеДобавлено: Вс, 23 Авг, 2009 20:23    Заголовок сообщения: Ответить с цитатой

vohomov
Сделал, как ты сказал:
vohomov писал(а):
Поэтому замените строки
Код:
mail("$myemail", "Обратная связь. Сообщение от $name", $allmsg, $headers);

// Пишем пользователю "Спасибо" и обновляем страницу через JavaScript
print "<script language='Javascript'>function reload() {location = \"$refreshpage\"}; setTimeout('reload()', 3000);</script>$printmsg"; exit;

на строки:
Код:

if(mail("$myemail", "Обратная связь. Сообщение от $name", $allmsg, $headers)) {
print "<script language='Javascript'>function reload() {location = \"$refreshpage\"}; setTimeout('reload()', 3000);</script> <b>Сообщение отправлено.</b>$printmsg";
exit;
}
else {
print "<script language='Javascript'>function reload() {location = \"$refreshpage\"}; setTimeout('reload()', 3000);</script> <b>Сообщение НЕ отправлено!!!</b>$printmsg";
exit;
}

Результат: http://kozachuk.net/contacts/sendmail.php
Что-то не так...
_________________
Вернуться к началу
Посмотреть профиль Отправить личное сообщение Посетить сайт автора
vohomov
Хостинг — это наше всё!
Хостинг — это наше всё!


Зарегистрирован: 17.07.2009
Сообщения: 183

20631 Монеты

СообщениеДобавлено: Вс, 23 Авг, 2009 20:36    Заголовок сообщения: Ответить с цитатой

Только что попробовал разобраться с этим на локальном сервере. Сначала попробовал код с изменённым вариантом. Выдаёт почему-то не то, что выдаёт у вас:
Parse error: syntax error, unexpected '>' in /media/disk/www/sellum/hell.php on line 91
Затем попробовал исходный код (тот, который вы в начале привели) - он выдаёт то же самое. Непноятно как у вас до этого работало, пойду разбираться - но проблема точно не в моей вставке кода, потому что как я сказал - ичходный код тоже выдаёт ошибку на 91 строке. (может быть вы неполностью привели код, раз на хостинге ошибка на 184 строке?).
_________________
Любителям и знатокам географии | Помощь по химии онлайн
Вернуться к началу
Посмотреть профиль Отправить личное сообщение Посетить сайт автора
vohomov
Хостинг — это наше всё!
Хостинг — это наше всё!


Зарегистрирован: 17.07.2009
Сообщения: 183

20631 Монеты

СообщениеДобавлено: Вс, 23 Авг, 2009 20:46    Заголовок сообщения: Ответить с цитатой

Ага, нашёл. Как же.
Код:
$text=preg_replace("/\\\/",'\',$text);

Вот это что за новый стиль программирования вобще? Я имею ввиду '\' . Обратный слэш экранирует закрывающую атрибут кавычку - отсюда и ошибка. Заменил на "\'" и всё заработало. И изменённый вариант тоже. Пробуйте на хостинге теперь. Ниже выложен исправленный вариант.
Код:
<? // WR-sendmail v 1.3.1  //  19.01.08 г.  //  Miha-ingener@yandex.ru

$myemail="***@***";  // Ваш электронный адрес
$refreshpage="sendmail.php";  // Страница, куда возвращается человек после отправки сообщения
$antispam="1"; // 1/0 вкл.выкл АНТИСПАМ
$maxname="30";   // Максимальное кол-во символов в имени
$maxtema="50"; // максимум символов в теме
$maxmsg="1500";  // Максимальное количество символов в сообщении

// Далее настраивается цвет таблицы и текста: цвет таблицы и цвет текста в заголовке таблицы
// Для Выбора схемы - раскоментируйте её и закоментируйте текущую символами //
$bdcolor="#000000";  $fcolor="#FFFFFF";  // Светлоголубой
//$bdcolor="#FF9A00"; $fcolor="#FFFFFF";   // Оранжевый
//$bdcolor="#FFE51A"; $fcolor="#00253B";   // Жёлтый
//$bdcolor="#00E900"; $fcolor="#00253B";   // Светло-зеленый
//$bdcolor="#007800"; $fcolor="#FFFFFF";   // Темно зеленый
//$bdcolor="#D2A500"; $fcolor="#FFFFFF";   // Золотой
//$bdcolor="#BCC0C0"; $fcolor="#FFFFFF";   // Серый
//$bdcolor="#00253B"; $fcolor="#FFFFFF";   // Темно-синий

$addstyle="style='font-family: Verdana; font-size: 12px; text-decoration: none; color: #ffffff; cursor: default; background: #000000 url(http://kozachuk.net/images/bg.jpg); border-style: solid; border-width: 1px; border-color: #ffffff;'";
$shapka="<html><head><META http-equiv=Content-Type content='text/html; charset=utf-8'></head><BODY background=#000000 url(http://kozachuk.net/images/bg.jpg)";
$back="<center>Вернитесь <a href='javascript:history.back(1)'><B>назад</B></a>"; // Удобная строка


// Для цифрозащиты антиспам:
$maxkey=4; // Колличество символов в коде  (можно изменять)
$absrand="676756";// Случайное число. Используется для цифрозащиты. Генерировать его нужно случайно при настройке или изменении конфигурации скрипта.
if (isset($_GET['image'])) {
// Функция с цифрами защиты
$st="R0lGODlhCgAMAIABAFNTU////yH5BAEAAAEALAAAAAAKAAwAAAI"; // общая часть для всех рисунков
function imgwr($st,$num){
 if ($num=="0") {$len="63"; $number=$st."WjIFgi6e+QpMP0jin1bfv2nFaBlJaAQA7";}
 if ($num=="1") {$len="61"; $number=$st."UjA1wG8noXlJsUnlrXhE/+DXb0RUAOw==";}
 if ($num=="2") {$len="64"; $number=$st."XjIFgi6e+QpMPRlbjvFtnfFnchyVJUAAAOw==";}
 if ($num=="3") {$len="64"; $number=$st."XjIFgi6e+Qovs0RkTzXbj+3yTJnUlVgAAOw==";}
 if ($num=="4") {$len="64"; $number=$st."XjA9wG8mWFIty0amczbVJDVHg9oSlZxQAOw==";}
 if ($num=="5") {$len="63"; $number=$st."WTIAJdsuPHovSKGoprhs67mzaJypMAQA7";}
 if ($num=="6") {$len="63"; $number=$st."WjIFoB6vxmFw0pfpihI3jOW1at3FRAQA7";}
 if ($num=="7") {$len="61"; $number=$st."UDI4Xy6vtAIzTyPpg1ndu9oEdNxUAOw==";}
 if ($num=="8") {$len="63"; $number=$st."WjIFgi6e+QpMP2slSpJbn7mFeWDlYAQA7";}
 if ($num=="9") {$len="64"; $number=$st."XjIFgi6e+QpMP0jinvbT2FGGPxmlkohUAOw==";}
 header("Content-type: image/gif");
 header("Content-length: $len");
 echo base64_decode($number); }
// Вывод изображений на экран (все кодированы - робот не пройдёт)
if (array_key_exists("image", $_REQUEST)) { $num=$_REQUEST["image"];
for ($i=0; $i<10; $i++) {if (md5($i+$absrand)==$num) {imgwr($st,$i); die();}} }
exit;}

//******************* Ниже лучше ничего не трогать ************************//

// Событие проверки на ошибки и отправки сообщения //
if (isset($_GET['event'])) { if ($_GET['event']=="add")  {

sleep(1); // мелкая защита от БОТОВ. Человеку секунда не время - а прога по подбору ключа - будет работать долго и не загружать сервер

if ($antispam!="0") {
$bada="$shapka $back <font color=red>Введённый вами код НЕ верен</font>!";
if (isset($_POST['usernum'])) {$usernum=$_POST['usernum'];} else {print"$bada"; exit;}
if (isset($_POST['xkey'])) {$xkey=$_POST['xkey'];} else {print"$bada"; exit;}
$userkey=md5("$usernum+$absrand");
if ($userkey!=$xkey) {print"$bada"; exit;}}

if (!isset($_POST['name'])) {print"$shapka $back Вы не ввели имя!";} else {$name=$_POST['name'];}
if (!isset($_POST['email'])) {print"$shapka $back Вы не ввели емайл!";} else {$email=$_POST['email'];}
if (!isset($_POST['tema'])) {print"$shapka $back Вы не ввели тему!";} else {$tema=$_POST['tema'];}
if (!isset($_POST['msg'])) {print"$shapka $back Вы не ввели сообщение!";} else {$msg=$_POST['msg'];}
if ($name=="" || strlen($name)>$maxname) {print "$shapka $back Вы не ввели имя, или вввели слишком длинное имя!</B></center>"; exit;}
if ($msg=="" || strlen($msg)>$maxmsg) {print "$shapka $back Ваше сообщение или пустое или превышает $maxmsg символов.</B></center>"; exit;}
//if ($tema=="" || strlen($tema)>$maxtema) {print "$shapka $back Вы не ввели тему!</B></center>"; exit;}
if(!preg_match("/^[a-z0-9\.\-_]+@[a-z0-9\-_]+\.([a-z0-9\-_]+\.)*?[a-z]+$/is", $_POST['email']) or $_POST['email']=="") {print "$shapka $back и введите корректный E-mail адрес!</B></center>"; exit;}

// Защита от взлома
$name=str_replace("|","|",$name);
$tema=str_replace("|","|",$tema);
$msg=str_replace("|","|",$msg);
$text="$name|$tema|$email|$msg|";
$text=str_replace(" ",' ',$text);
$text=str_replace("&",'&amp;',$text);
$text=str_replace(">",'&gt;',$text);
$text=str_replace("<",'&lt;',$text);
$text=str_replace("\"",'&quot;',$text);
$text=preg_replace("/\n\n/",'<p>',$text);
$text=preg_replace("/\n/",'<br>',$text);
$text=preg_replace("/\\\$/",'$',$text);
$text=preg_replace("/\r/",'',$text);
$text=stripslashes($text);
$text=preg_replace("/\\\/","\'",$text);
$text=str_replace("\r\n","<br> ",$text);
$text=str_replace("\n\n",'<p>',$text);
$text=str_replace("\n",'<br> ',$text);
$text=str_replace("\t",'',$text);
$text=str_replace("\r",'',$text);
$text=str_replace('   ',' ',$text);
$exd=explode("|",$text); $name=$exd[0]; $tema=$exd[1]; $email=$exd[2]; $msg=$exd[3];


$host=$_SERVER["HTTP_HOST"]; $self=$_SERVER["PHP_SELF"]; $smailurl="http://$host$self";

$date=date("d.m.Y"); // число.месяц.год
$time=date("H:i:s"); // часы:минуты:секунды

// Настройки для отправки писем
$headers=null;
$headers.="Content-Type: text/html; charset=utf-8\r\n";
$headers.="From: ".$name." <".$email.">\r\n";
$headers.="X-Mailer: PHP/".phpversion()."\r\n";

// Собираем всю информацию в теле письма
$allmsg="<html><head><title>Сообщение успешно отправлено!</title><meta http-equiv='Content-Type' content='text/html; charset=utf-8'>
<style>BODY {background:#000000 url(http://kozachuk.net/images/bg.jpg); FONT-FAMILY: verdana,arial,helvetica; FONT-SIZE: 13px;} TD {FONT-SIZE: 12px;}</style></head>
<body background=/images/bg.jpg>
<img src=/http://kozachuk.net/gallery_logo.png>
<center><table border=1 cellpadding=6 cellspacing=0 width=550 bordercolor='#DBDBDB'>
<tr><td colspan=2 align=center bgcolor='#E4E4E4'><B>Информация</B></td></tr>
<tr bgcolor='#F2F2F2'><td width=117>Имя:</td><td width=433><B>$name</B></td></tr>
<tr bgcolor='#F8F8F8'><td>E-mail:</td><td><B>$email</B></td></tr>
<tr bgcolor='#F8F8F8'><td>Дата отправки:</td><td>$time - $date г.</td></tr>
<tr bgcolor='#F8F8F8'><td>Тема:</td><td><B>$tema</B></td></tr>
<tr bgcolor='#F2F2F2'><td>Текст:</td><td>$msg</td></tr>
</table><center><BR><font color=white>Ваше сообщение</font> <B><font color=navy>успешно отправлено</font></B><BR><BR>
<a href='$refreshpage'>Вернуться <B>назад</B></a>";
$printmsg="$allmsg </body></html>";
$allmsg.="<BR><BR><BR>* Это сообщение сгенерировано и отправлено роботом с формы обратной связи. Отвечать на него не нужно.</body></html>";

// Отправляем письмо майлеру на съедение ;-)
if(mail("$myemail", "Обратная связь. Сообщение от $name", $allmsg, $headers)) {
 print "<script language='Javascript'>function reload() {location = \"$refreshpage\"}; setTimeout('reload()', 3000);</script> <b>Сообщение отправлено.</b>$printmsg";
 exit;
}
else {
print "<script language='Javascript'>function reload() {location = \"$refreshpage\"}; setTimeout('reload()', 3000);</script> <b>Сообщение НЕ отправлено!!!</b>$printmsg";
exit;
}
}

}  else  {   // Типо главной страницы


print "<HTML><head><title>Обратная связь - Фотограф Катерина Козачук</title><META content='text/html; charset=utf-8' http-equiv=Content-Type></head>
<BODY background=/images/bg.jpg><center>
<table border=0 width=100% height=500 cellpadding=1 cellspacing=0 background=/images/bg.jpg><tr><td>
<table border=0 width=100% cellpadding=1 cellspacing=0 background=/images/bg.jpg><tr><td>";

print "
<img src=http://kozachuk.net/gallery_logo.png>
</td></tr><tr><td colspan=2 width=100% background=/images/bg.jpg><center>
<form action=sendmail.php?event=add method=post name=REPLIER>
<table border=0 cellpadding=0 cellspacing=0 width=800>
<tr><td>&nbsp;</TD></TR>
<tr><td><B><font color=white>Имя:&nbsp;&nbsp;</B></font><br> <input type=text $addstyle value='' maxlength=$maxname name=name size=27><br>
<font color=white><B>Ваш E-mail:&nbsp;&nbsp;</B></font><br> <input type=text $addstyle value='' name=email size=27></td></tr><br>
<tr><td><font color=white><B>Тема сообщения:&nbsp;&nbsp;</B></font><br><input type=text $addstyle value='' maxlength=$maxtema name=tema size=60></td></tr>
<tr><td><font color=white><B>Сообщение:</B></font></td></tr>
<tr><td><textarea $addstyle cols=80 rows=10 size=500 name=msg></textarea>";

// Антиспам
if ($antispam!="0") {

// Вывод изображений на экран (все кодированы - робот не пройдёт)
if (array_key_exists("image", $_REQUEST)) { $num=$_REQUEST["image"];
for ($i=0; $i<10; $i++) {if (md5($i+$absrand)==$num) {imgwr($st,$i); die();}} }

$xkey=""; mt_srand(time()+(double)microtime()*1000000);

print"<TR><TD><font color=white><B>Защитный код:</B></font> &nbsp;&nbsp;";
for ($i=0; $i<$maxkey; $i++) {
$snum[$i]=mt_rand(0,9); $psnum=md5($snum[$i]+$absrand);
$phpself=$_SERVER["PHP_SELF"];
echo "<img src=$phpself?image=$psnum border='0' alt=''>\n";
$xkey=$xkey.$snum[$i];
}
$xkey=md5("$xkey+$absrand");

print"&nbsp;&nbsp; <input name='usernum' $addstyle type='text' maxlength=$maxkey size=8><input name=xkey type=hidden value='$xkey'>&nbsp;&nbsp; <small><font color=white>(введите число, указанное на картинке)</font></small></TD></TR>";
}


print"<TR><TD colspan=3><br><input type=submit $addstyle value='Отправить'></form></td></tr></table>";
}

?>

</td></tr></table></td></tr></table><BR></body></html>

--
А вобще этот скрипт всё же издевательство - ну зачем постоянно чередовать то двойные, то одинарные кавычки? Путаница одна только от этого. Вот уж где-где - а здесь явно нечитаемо и невменяемо.
_________________
Любителям и знатокам географии | Помощь по химии онлайн
Вернуться к началу
Посмотреть профиль Отправить личное сообщение Посетить сайт автора
Johnny
Два пингвина
Два пингвина


Зарегистрирован: 28.06.2008
Сообщения: 466
Откуда: Краснодар
878 Монеты

СообщениеДобавлено: Пн, 24 Авг, 2009 08:48    Заголовок сообщения: Ответить с цитатой

vohomov
спасибо за исправленный код, но сообщения по прежнему не доставляются. Пожалуйста, попробуйте использовать свой электронный адрес и скажите, всё ли у Вас в порядке?
_________________
Вернуться к началу
Посмотреть профиль Отправить личное сообщение Посетить сайт автора
vohomov
Хостинг — это наше всё!
Хостинг — это наше всё!


Зарегистрирован: 17.07.2009
Сообщения: 183

20631 Монеты

СообщениеДобавлено: Пн, 24 Авг, 2009 11:19    Заголовок сообщения: Ответить с цитатой

Только что также проверил - идут ли письма с моего движка сайта (не с ашего скрипта) - письмо доставляется сию же секунду (на мою почту gmail и на любую другую).
Поэтому хочу поинтересоваться - какой у вас хостинговый пакет (ZOXT, FSAY, etc...)?
_________________
Любителям и знатокам географии | Помощь по химии онлайн
Вернуться к началу
Посмотреть профиль Отправить личное сообщение Посетить сайт автора
vohomov
Хостинг — это наше всё!
Хостинг — это наше всё!


Зарегистрирован: 17.07.2009
Сообщения: 183

20631 Монеты

СообщениеДобавлено: Пн, 24 Авг, 2009 11:37    Заголовок сообщения: Ответить с цитатой

Итак, я попробую помочь иначе: отправка письма непосредсвенно на обработку sendmail -t -oi с параметрами в одном шаблоне. Функция отправки в самом начале (если что). Там где и раньше нужно вписать ваш email - впишите, не забудьте. И Проверьте, доставляются ли на него письма. По идее должны (если вы. конечно, на FSAY).
Код:
<? // WR-sendmail v 1.3.1  //  19.01.08 г.  //  Miha-ingener@yandex.ru

function sendmail($msgx) {
  $fp = @popen("/usr/sbin/sendmail -t -oi", "w");
  fputs($fp, $msgx);
  $res = pclose($fp);
  if($res == 0) {
   return 1;
  }
  else {
   return 0;
  }
}

$myemail="ВВЕДИТЕ ЗДЕСЬ ЭЛЕКТРОПОЧТУ";  // Ваш электронный адрес
$refreshpage="sendmail.php";  // Страница, куда возвращается человек после отправки сообщения
$antispam="1"; // 1/0 вкл.выкл АНТИСПАМ
$maxname="30";   // Максимальное кол-во символов в имени
$maxtema="50"; // максимум символов в теме
$maxmsg="1500";  // Максимальное количество символов в сообщении

// Далее настраивается цвет таблицы и текста: цвет таблицы и цвет текста в заголовке таблицы
// Для Выбора схемы - раскоментируйте её и закоментируйте текущую символами //
$bdcolor="#000000";  $fcolor="#FFFFFF";  // Светлоголубой
//$bdcolor="#FF9A00"; $fcolor="#FFFFFF";   // Оранжевый
//$bdcolor="#FFE51A"; $fcolor="#00253B";   // Жёлтый
//$bdcolor="#00E900"; $fcolor="#00253B";   // Светло-зеленый
//$bdcolor="#007800"; $fcolor="#FFFFFF";   // Темно зеленый
//$bdcolor="#D2A500"; $fcolor="#FFFFFF";   // Золотой
//$bdcolor="#BCC0C0"; $fcolor="#FFFFFF";   // Серый
//$bdcolor="#00253B"; $fcolor="#FFFFFF";   // Темно-синий

$addstyle="style='font-family: Verdana; font-size: 12px; text-decoration: none; color: #ffffff; cursor: default; background: #000000 url(http://kozachuk.net/images/bg.jpg); border-style: solid; border-width: 1px; border-color: #ffffff;'";
$shapka="<html><head><META http-equiv=Content-Type content='text/html; charset=utf-8'></head><BODY background=#000000 url(http://kozachuk.net/images/bg.jpg)";
$back="<center>Вернитесь <a href='javascript:history.back(1)'><B>назад</B></a>"; // Удобная строка


// Для цифрозащиты антиспам:
$maxkey=4; // Колличество символов в коде  (можно изменять)
$absrand="676756";// Случайное число. Используется для цифрозащиты. Генерировать его нужно случайно при настройке или изменении конфигурации скрипта.
if (isset($_GET['image'])) {
// Функция с цифрами защиты
$st="R0lGODlhCgAMAIABAFNTU////yH5BAEAAAEALAAAAAAKAAwAAAI"; // общая часть для всех рисунков
function imgwr($st,$num){
 if ($num=="0") {$len="63"; $number=$st."WjIFgi6e+QpMP0jin1bfv2nFaBlJaAQA7";}
 if ($num=="1") {$len="61"; $number=$st."UjA1wG8noXlJsUnlrXhE/+DXb0RUAOw==";}
 if ($num=="2") {$len="64"; $number=$st."XjIFgi6e+QpMPRlbjvFtnfFnchyVJUAAAOw==";}
 if ($num=="3") {$len="64"; $number=$st."XjIFgi6e+Qovs0RkTzXbj+3yTJnUlVgAAOw==";}
 if ($num=="4") {$len="64"; $number=$st."XjA9wG8mWFIty0amczbVJDVHg9oSlZxQAOw==";}
 if ($num=="5") {$len="63"; $number=$st."WTIAJdsuPHovSKGoprhs67mzaJypMAQA7";}
 if ($num=="6") {$len="63"; $number=$st."WjIFoB6vxmFw0pfpihI3jOW1at3FRAQA7";}
 if ($num=="7") {$len="61"; $number=$st."UDI4Xy6vtAIzTyPpg1ndu9oEdNxUAOw==";}
 if ($num=="8") {$len="63"; $number=$st."WjIFgi6e+QpMP2slSpJbn7mFeWDlYAQA7";}
 if ($num=="9") {$len="64"; $number=$st."XjIFgi6e+QpMP0jinvbT2FGGPxmlkohUAOw==";}
 header("Content-type: image/gif");
 header("Content-length: $len");
 echo base64_decode($number); }
// Вывод изображений на экран (все кодированы - робот не пройдёт)
if (array_key_exists("image", $_REQUEST)) { $num=$_REQUEST["image"];
for ($i=0; $i<10; $i++) {if (md5($i+$absrand)==$num) {imgwr($st,$i); die();}} }
exit;}

//******************* Ниже лучше ничего не трогать ************************//

// Событие проверки на ошибки и отправки сообщения //
if (isset($_GET['event'])) { if ($_GET['event']=="add")  {

sleep(1); // мелкая защита от БОТОВ. Человеку секунда не время - а прога по подбору ключа - будет работать долго и не загружать сервер

if ($antispam!="0") {
$bada="$shapka $back <font color=red>Введённый вами код НЕ верен</font>!";
if (isset($_POST['usernum'])) {$usernum=$_POST['usernum'];} else {print"$bada"; exit;}
if (isset($_POST['xkey'])) {$xkey=$_POST['xkey'];} else {print"$bada"; exit;}
$userkey=md5("$usernum+$absrand");
if ($userkey!=$xkey) {print"$bada"; exit;}}

if (!isset($_POST['name'])) {print"$shapka $back Вы не ввели имя!";} else {$name=$_POST['name'];}
if (!isset($_POST['email'])) {print"$shapka $back Вы не ввели емайл!";} else {$email=$_POST['email'];}
if (!isset($_POST['tema'])) {print"$shapka $back Вы не ввели тему!";} else {$tema=$_POST['tema'];}
if (!isset($_POST['msg'])) {print"$shapka $back Вы не ввели сообщение!";} else {$msg=$_POST['msg'];}
if ($name=="" || strlen($name)>$maxname) {print "$shapka $back Вы не ввели имя, или вввели слишком длинное имя!</B></center>"; exit;}
if ($msg=="" || strlen($msg)>$maxmsg) {print "$shapka $back Ваше сообщение или пустое или превышает $maxmsg символов.</B></center>"; exit;}
//if ($tema=="" || strlen($tema)>$maxtema) {print "$shapka $back Вы не ввели тему!</B></center>"; exit;}
if(!preg_match("/^[a-z0-9\.\-_]+@[a-z0-9\-_]+\.([a-z0-9\-_]+\.)*?[a-z]+$/is", $_POST['email']) or $_POST['email']=="") {print "$shapka $back и введите корректный E-mail адрес!</B></center>"; exit;}

// Защита от взлома
$name=str_replace("|","|",$name);
$tema=str_replace("|","|",$tema);
$msg=str_replace("|","|",$msg);
$text="$name|$tema|$email|$msg|";
$text=str_replace(" ",' ',$text);
$text=str_replace("&",'&amp;',$text);
$text=str_replace(">",'&gt;',$text);
$text=str_replace("<",'&lt;',$text);
$text=str_replace("\"",'&quot;',$text);
$text=preg_replace("/\n\n/",'<p>',$text);
$text=preg_replace("/\n/",'<br>',$text);
$text=preg_replace("/\\\$/",'$',$text);
$text=preg_replace("/\r/",'',$text);
$text=stripslashes($text);
$text=preg_replace("/\\\/","\'",$text);
$text=str_replace("\r\n","<br> ",$text);
$text=str_replace("\n\n",'<p>',$text);
$text=str_replace("\n",'<br> ',$text);
$text=str_replace("\t",'',$text);
$text=str_replace("\r",'',$text);
$text=str_replace('   ',' ',$text);
$exd=explode("|",$text); $name=$exd[0]; $tema=$exd[1]; $email=$exd[2]; $msg=$exd[3];


$host=$_SERVER["HTTP_HOST"]; $self=$_SERVER["PHP_SELF"]; $smailurl="http://$host$self";

$date=date("d.m.Y"); // число.месяц.год
$time=date("H:i:s"); // часы:минуты:секунды

// Собираем всю информацию в теле письма
$allmsg="<html><head><title>Сообщение успешно отправлено!</title><meta http-equiv='Content-Type' content='text/html; charset=utf-8'>
<style>BODY {background:#000000 url(http://kozachuk.net/images/bg.jpg); FONT-FAMILY: verdana,arial,helvetica; FONT-SIZE: 13px;} TD {FONT-SIZE: 12px;}</style></head>
<body background=/images/bg.jpg>
<img src=/http://kozachuk.net/gallery_logo.png>
<center><table border=1 cellpadding=6 cellspacing=0 width=550 bordercolor='#DBDBDB'>
<tr><td colspan=2 align=center bgcolor='#E4E4E4'><B>Информация</B></td></tr>
<tr bgcolor='#F2F2F2'><td width=117>Имя:</td><td width=433><B>$name</B></td></tr>
<tr bgcolor='#F8F8F8'><td>E-mail:</td><td><B>$email</B></td></tr>
<tr bgcolor='#F8F8F8'><td>Дата отправки:</td><td>$time - $date г.</td></tr>
<tr bgcolor='#F8F8F8'><td>Тема:</td><td><B>$tema</B></td></tr>
<tr bgcolor='#F2F2F2'><td>Текст:</td><td>$msg</td></tr>
</table><center><BR><font color=white>Ваше сообщение</font> <B><font color=navy>успешно отправлено</font></B><BR><BR>
<a href='$refreshpage'>Вернуться <B>назад</B></a>";
$printmsg="$allmsg </body></html>";
$allmsg.="<BR><BR><BR>* Это сообщение сгенерировано и отправлено роботом с формы обратной связи. Отвечать на него не нужно.</body></html>";

// Формируем письмо
$mail2hell = <<<EOF
To: {$myemail}
From: {$name} <{$email}>
Subject: Обратная связь. Сообщение от {$name}
Content-type: text/html; charset=utf-8

{$allmsg}
EOF;


if(@sendmail($mail2hell)) {
 print "<script language='Javascript'>function reload() {location = \"$refreshpage\"}; setTimeout('reload()', 3000);</script> <b>Сообщение отправлено.</b>$printmsg";
 exit;
}
else {
print "<script language='Javascript'>function reload() {location = \"$refreshpage\"}; setTimeout('reload()', 3000);</script> <b>Сообщение НЕ отправлено!!!</b>$printmsg";
exit;
}
}

}  else  {   // Типо главной страницы


print "<HTML><head><title>Обратная связь - Фотограф Катерина Козачук</title><META content='text/html; charset=utf-8' http-equiv=Content-Type></head>
<BODY background=/images/bg.jpg><center>
<table border=0 width=100% height=500 cellpadding=1 cellspacing=0 background=/images/bg.jpg><tr><td>
<table border=0 width=100% cellpadding=1 cellspacing=0 background=/images/bg.jpg><tr><td>";

print "
<img src=http://kozachuk.net/gallery_logo.png>
</td></tr><tr><td colspan=2 width=100% background=/images/bg.jpg><center>
<form action=sendmail.php?event=add method=post name=REPLIER>
<table border=0 cellpadding=0 cellspacing=0 width=800>
<tr><td>&nbsp;</TD></TR>
<tr><td><B><font color=white>Имя:&nbsp;&nbsp;</B></font><br> <input type=text $addstyle value='' maxlength=$maxname name=name size=27><br>
<font color=white><B>Ваш E-mail:&nbsp;&nbsp;</B></font><br> <input type=text $addstyle value='' name=email size=27></td></tr><br>
<tr><td><font color=white><B>Тема сообщения:&nbsp;&nbsp;</B></font><br><input type=text $addstyle value='' maxlength=$maxtema name=tema size=60></td></tr>
<tr><td><font color=white><B>Сообщение:</B></font></td></tr>
<tr><td><textarea $addstyle cols=80 rows=10 size=500 name=msg></textarea>";

// Антиспам
if ($antispam!="0") {

// Вывод изображений на экран (все кодированы - робот не пройдёт)
if (array_key_exists("image", $_REQUEST)) { $num=$_REQUEST["image"];
for ($i=0; $i<10; $i++) {if (md5($i+$absrand)==$num) {imgwr($st,$i); die();}} }

$xkey=""; mt_srand(time()+(double)microtime()*1000000);

print"<TR><TD><font color=white><B>Защитный код:</B></font> &nbsp;&nbsp;";
for ($i=0; $i<$maxkey; $i++) {
$snum[$i]=mt_rand(0,9); $psnum=md5($snum[$i]+$absrand);
$phpself=$_SERVER["PHP_SELF"];
echo "<img src=$phpself?image=$psnum border='0' alt=''>\n";
$xkey=$xkey.$snum[$i];
}
$xkey=md5("$xkey+$absrand");

print"&nbsp;&nbsp; <input name='usernum' $addstyle type='text' maxlength=$maxkey size=8><input name=xkey type=hidden value='$xkey'>&nbsp;&nbsp; <small><font color=white>(введите число, указанное на картинке)</font></small></TD></TR>";
}


print"<TR><TD colspan=3><br><input type=submit $addstyle value='Отправить'></form></td></tr></table>";
}

?>

</td></tr></table></td></tr></table><BR></body></html>

И всё же неплохо было бы написать, какой у вас хостинговый пакет. Если ZOXT - и этот код не помогает - значит повод обратиться к eomysupport.
_________________
Любителям и знатокам географии | Помощь по химии онлайн
Вернуться к началу
Посмотреть профиль Отправить личное сообщение Посетить сайт автора
Johnny
Два пингвина
Два пингвина


Зарегистрирован: 28.06.2008
Сообщения: 466
Откуда: Краснодар
878 Монеты

СообщениеДобавлено: Пн, 24 Авг, 2009 14:14    Заголовок сообщения: Ответить с цитатой

На другом хостинге всё заработало. У меня пакет FSAY, аккаунт aeugesha.fsay.net
_________________
Вернуться к началу
Посмотреть профиль Отправить личное сообщение Посетить сайт автора
vohomov
Хостинг — это наше всё!
Хостинг — это наше всё!


Зарегистрирован: 17.07.2009
Сообщения: 183

20631 Монеты

СообщениеДобавлено: Пн, 24 Авг, 2009 18:06    Заголовок сообщения: Ответить с цитатой

[quote="Johnny"]На другом хостинге всё заработало. У меня пакет FSAY, аккаунт aeugesha.fsay.net[/quote]
Стоп-стоп-стоп. Что конкретно заработало? Первая редакция кода или последняя (которую сегодня выложил)?
не знаю как насчёт функции mail(), но вот вызов sendmail -t -oi напрямую на хостинге FSAY должен работать - у меня сегодня письма, отправленные по тому же принципу доставлялись.

Я прочёл ваше сообщение в ЛС - скорее всего, что-то конкретно с вашим аккаунтом. Лучше подождать комментариев eomysupport.
P.S. То, что вы говорите, что у вас вторая редакция скрипта заработала хорошо на другом хостинге ещё раз подтверждает то, что скрипт сам по себе рабочий.
(у себя на сайте на fsay я использую вот эту самую написанную функцию sendmail() которая связывается с sendmail в коммандной строке напрямую - и всё работает. сегодня точно работает.).
--
У вас, кстати, думается мне, не доставляется потому, что в поле From (что в первой, что во второй редакции скрипта) вставляются данные из формы. То есть заведомо неправильный адрес отправителя получается - выходит, что скрипт пытается отправить Вам письмо от имени введённого пользователем адреса почты - и вероятно, это блокируется либо сэндмэйлом на сервере, либо в почтовом ящике получателя.
Лучше адрес отправившего сообщение включать в сам текст, т.е. просто инфо для вебмастера, а вот в заголовок "From:" лучше вписать значение адреса, относящегося к вашему домену. Например no-reply@{$_SERVER['HTTP_HOST']} - см. новую редакцию скрипта.
Код:

<? // WR-sendmail v 1.3.1  //  19.01.08 г.  //  Miha-ingener@yandex.ru

function sendmail($msgx) {
  $fp = @popen("/usr/sbin/sendmail -t -oi", "w");
  fputs($fp, $msgx);
  $res = pclose($fp);
  if($res == 0) {
   return 1;
  }
  else {
   return 0;
  }
}

$myemail="";  // Ваш электронный адрес
$refreshpage="sendmail.php";  // Страница, куда возвращается человек после отправки сообщения
$antispam="1"; // 1/0 вкл.выкл АНТИСПАМ
$maxname="30";   // Максимальное кол-во символов в имени
$maxtema="50"; // максимум символов в теме
$maxmsg="1500";  // Максимальное количество символов в сообщении

// Далее настраивается цвет таблицы и текста: цвет таблицы и цвет текста в заголовке таблицы
// Для Выбора схемы - раскоментируйте её и закоментируйте текущую символами //
$bdcolor="#000000";  $fcolor="#FFFFFF";  // Светлоголубой
//$bdcolor="#FF9A00"; $fcolor="#FFFFFF";   // Оранжевый
//$bdcolor="#FFE51A"; $fcolor="#00253B";   // Жёлтый
//$bdcolor="#00E900"; $fcolor="#00253B";   // Светло-зеленый
//$bdcolor="#007800"; $fcolor="#FFFFFF";   // Темно зеленый
//$bdcolor="#D2A500"; $fcolor="#FFFFFF";   // Золотой
//$bdcolor="#BCC0C0"; $fcolor="#FFFFFF";   // Серый
//$bdcolor="#00253B"; $fcolor="#FFFFFF";   // Темно-синий

$addstyle="style='font-family: Verdana; font-size: 12px; text-decoration: none; color: #ffffff; cursor: default; background: #000000 url(http://kozachuk.net/images/bg.jpg); border-style: solid; border-width: 1px; border-color: #ffffff;'";
$shapka="<html><head><META http-equiv=Content-Type content='text/html; charset=utf-8'></head><BODY background=#000000 url(http://kozachuk.net/images/bg.jpg)";
$back="<center>Вернитесь <a href='javascript:history.back(1)'><B>назад</B></a>"; // Удобная строка


// Для цифрозащиты антиспам:
$maxkey=4; // Колличество символов в коде  (можно изменять)
$absrand="676756";// Случайное число. Используется для цифрозащиты. Генерировать его нужно случайно при настройке или изменении конфигурации скрипта.
if (isset($_GET['image'])) {
// Функция с цифрами защиты
$st="R0lGODlhCgAMAIABAFNTU////yH5BAEAAAEALAAAAAAKAAwAAAI"; // общая часть для всех рисунков
function imgwr($st,$num){
 if ($num=="0") {$len="63"; $number=$st."WjIFgi6e+QpMP0jin1bfv2nFaBlJaAQA7";}
 if ($num=="1") {$len="61"; $number=$st."UjA1wG8noXlJsUnlrXhE/+DXb0RUAOw==";}
 if ($num=="2") {$len="64"; $number=$st."XjIFgi6e+QpMPRlbjvFtnfFnchyVJUAAAOw==";}
 if ($num=="3") {$len="64"; $number=$st."XjIFgi6e+Qovs0RkTzXbj+3yTJnUlVgAAOw==";}
 if ($num=="4") {$len="64"; $number=$st."XjA9wG8mWFIty0amczbVJDVHg9oSlZxQAOw==";}
 if ($num=="5") {$len="63"; $number=$st."WTIAJdsuPHovSKGoprhs67mzaJypMAQA7";}
 if ($num=="6") {$len="63"; $number=$st."WjIFoB6vxmFw0pfpihI3jOW1at3FRAQA7";}
 if ($num=="7") {$len="61"; $number=$st."UDI4Xy6vtAIzTyPpg1ndu9oEdNxUAOw==";}
 if ($num=="8") {$len="63"; $number=$st."WjIFgi6e+QpMP2slSpJbn7mFeWDlYAQA7";}
 if ($num=="9") {$len="64"; $number=$st."XjIFgi6e+QpMP0jinvbT2FGGPxmlkohUAOw==";}
 header("Content-type: image/gif");
 header("Content-length: $len");
 echo base64_decode($number); }
// Вывод изображений на экран (все кодированы - робот не пройдёт)
if (array_key_exists("image", $_REQUEST)) { $num=$_REQUEST["image"];
for ($i=0; $i<10; $i++) {if (md5($i+$absrand)==$num) {imgwr($st,$i); die();}} }
exit;}

//******************* Ниже лучше ничего не трогать ************************//

// Событие проверки на ошибки и отправки сообщения //
if (isset($_GET['event'])) { if ($_GET['event']=="add")  {

sleep(1); // мелкая защита от БОТОВ. Человеку секунда не время - а прога по подбору ключа - будет работать долго и не загружать сервер

if ($antispam!="0") {
$bada="$shapka $back <font color=red>Введённый вами код НЕ верен</font>!";
if (isset($_POST['usernum'])) {$usernum=$_POST['usernum'];} else {print"$bada"; exit;}
if (isset($_POST['xkey'])) {$xkey=$_POST['xkey'];} else {print"$bada"; exit;}
$userkey=md5("$usernum+$absrand");
if ($userkey!=$xkey) {print"$bada"; exit;}}

if (!isset($_POST['name'])) {print"$shapka $back Вы не ввели имя!";} else {$name=$_POST['name'];}
if (!isset($_POST['email'])) {print"$shapka $back Вы не ввели емайл!";} else {$email=$_POST['email'];}
if (!isset($_POST['tema'])) {print"$shapka $back Вы не ввели тему!";} else {$tema=$_POST['tema'];}
if (!isset($_POST['msg'])) {print"$shapka $back Вы не ввели сообщение!";} else {$msg=$_POST['msg'];}
if ($name=="" || strlen($name)>$maxname) {print "$shapka $back Вы не ввели имя, или вввели слишком длинное имя!</B></center>"; exit;}
if ($msg=="" || strlen($msg)>$maxmsg) {print "$shapka $back Ваше сообщение или пустое или превышает $maxmsg символов.</B></center>"; exit;}
//if ($tema=="" || strlen($tema)>$maxtema) {print "$shapka $back Вы не ввели тему!</B></center>"; exit;}
if(!preg_match("/^[a-z0-9\.\-_]+@[a-z0-9\-_]+\.([a-z0-9\-_]+\.)*?[a-z]+$/is", $_POST['email']) or $_POST['email']=="") {print "$shapka $back и введите корректный E-mail адрес!</B></center>"; exit;}

// Защита от взлома
$name=str_replace("|","|",$name);
$tema=str_replace("|","|",$tema);
$msg=str_replace("|","|",$msg);
$text="$name|$tema|$email|$msg|";
$text=str_replace(" ",' ',$text);
$text=str_replace("&",'&',$text);
$text=str_replace(">",'>',$text);
$text=str_replace("<",'<',$text);
$text=str_replace("\"",'"',$text);
$text=preg_replace("/\n\n/",'<p>',$text);
$text=preg_replace("/\n/",'<br>',$text);
$text=preg_replace("/\\\$/",'$',$text);
$text=preg_replace("/\r/",'',$text);
$text=stripslashes($text);
$text=preg_replace("/\\\/","\'",$text);
$text=str_replace("\r\n","<br> ",$text);
$text=str_replace("\n\n",'<p>',$text);
$text=str_replace("\n",'<br> ',$text);
$text=str_replace("\t",'',$text);
$text=str_replace("\r",'',$text);
$text=str_replace('   ',' ',$text);
$exd=explode("|",$text); $name=$exd[0]; $tema=$exd[1]; $email=$exd[2]; $msg=$exd[3];


$host=$_SERVER["HTTP_HOST"]; $self=$_SERVER["PHP_SELF"]; $smailurl="http://$host$self";

$date=date("d.m.Y"); // число.месяц.год
$time=date("H:i:s"); // часы:минуты:секунды

// Собираем всю информацию в теле письма
$allmsg="<html><head><title>Сообщение успешно отправлено!</title><meta http-equiv='Content-Type' content='text/html; charset=utf-8'>
<style>BODY {background:#000000 url(http://kozachuk.net/images/bg.jpg); FONT-FAMILY: verdana,arial,helvetica; FONT-SIZE: 13px;} TD {FONT-SIZE: 12px;}</style></head>
<body background=/images/bg.jpg>
<img src=/http://kozachuk.net/gallery_logo.png>
<center><table border=1 cellpadding=6 cellspacing=0 width=550 bordercolor='#DBDBDB'>
<tr><td colspan=2 align=center bgcolor='#E4E4E4'><B>Информация</B></td></tr>
<tr bgcolor='#F2F2F2'><td width=117>Имя:</td><td width=433><B>$name</B></td></tr>
<tr bgcolor='#F8F8F8'><td>E-mail:</td><td><B>$email</B></td></tr>
<tr bgcolor='#F8F8F8'><td>Дата отправки:</td><td>$time - $date г.</td></tr>
<tr bgcolor='#F8F8F8'><td>Тема:</td><td><B>$tema</B></td></tr>
<tr bgcolor='#F2F2F2'><td>Текст:</td><td>$msg</td></tr>
</table><center><BR><font color=white>Ваше сообщение</font> <B><font color=navy>успешно отправлено</font></B><BR><BR>
<a href='$refreshpage'>Вернуться <B>назад</B></a>";
$printmsg="$allmsg </body></html>";
$allmsg.="<BR><BR><BR>* Это сообщение сгенерировано и отправлено роботом с формы обратной связи. Отвечать на него не нужно.</body></html>";

// Формируем письмо
$mail2hell = <<<EOF
To: {$myemail}
From: no-reply@{$_SERVER['HTTP_HOST']}
Subject: Обратная связь. Сообщение от {$name}
Content-type: text/html; charset=utf-8

{$allmsg}
EOF;


if(@sendmail($mail2hell)) {
 print "<script language='Javascript'>function reload() {location = \"$refreshpage\"}; setTimeout('reload()', 3000);</script> <b>Сообщение отправлено.</b>$printmsg";
 exit;
}
else {
print "<script language='Javascript'>function reload() {location = \"$refreshpage\"}; setTimeout('reload()', 3000);</script> <b>Сообщение НЕ отправлено!!!</b>$printmsg";
exit;
}
}

}  else  {   // Типо главной страницы


print "<HTML><head><title>Обратная связь - Фотограф Катерина Козачук</title><META content='text/html; charset=utf-8' http-equiv=Content-Type></head>
<BODY background=/images/bg.jpg><center>
<table border=0 width=100% height=500 cellpadding=1 cellspacing=0 background=/images/bg.jpg><tr><td>
<table border=0 width=100% cellpadding=1 cellspacing=0 background=/images/bg.jpg><tr><td>";

print "
<img src=http://kozachuk.net/gallery_logo.png>
</td></tr><tr><td colspan=2 width=100% background=/images/bg.jpg><center>
<form action=sendmail.php?event=add method=post name=REPLIER>
<table border=0 cellpadding=0 cellspacing=0 width=800>
<tr><td> </TD></TR>
<tr><td><B><font color=white>Имя:  </B></font><br> <input type=text $addstyle value='' maxlength=$maxname name=name size=27><br>
<font color=white><B>Ваш E-mail:  </B></font><br> <input type=text $addstyle value='' name=email size=27></td></tr><br>
<tr><td><font color=white><B>Тема сообщения:  </B></font><br><input type=text $addstyle value='' maxlength=$maxtema name=tema size=60></td></tr>
<tr><td><font color=white><B>Сообщение:</B></font></td></tr>
<tr><td><textarea $addstyle cols=80 rows=10 size=500 name=msg></textarea>";

// Антиспам
if ($antispam!="0") {

// Вывод изображений на экран (все кодированы - робот не пройдёт)
if (array_key_exists("image", $_REQUEST)) { $num=$_REQUEST["image"];
for ($i=0; $i<10; $i++) {if (md5($i+$absrand)==$num) {imgwr($st,$i); die();}} }

$xkey=""; mt_srand(time()+(double)microtime()*1000000);

print"<TR><TD><font color=white><B>Защитный код:</B></font>   ";
for ($i=0; $i<$maxkey; $i++) {
$snum[$i]=mt_rand(0,9); $psnum=md5($snum[$i]+$absrand);
$phpself=$_SERVER["PHP_SELF"];
echo "<img src=$phpself?image=$psnum border='0' alt=''>\n";
$xkey=$xkey.$snum[$i];
}
$xkey=md5("$xkey+$absrand");

print"   <input name='usernum' $addstyle type='text' maxlength=$maxkey size=8><input name=xkey type=hidden value='$xkey'>   <small><font color=white>(введите число, указанное на картинке)</font></small></TD></TR>";
}


print"<TR><TD colspan=3><br><input type=submit $addstyle value='Отправить'></form></td></tr></table>";
}

?>

</td></tr></table></td></tr></table><BR></body></html>
Вернуться к началу
Посмотреть профиль Отправить личное сообщение Посетить сайт автора
[LP]LordPro.teus
Призрак Лорда
Призрак Лорда


Зарегистрирован: 26.07.2007
Сообщения: 5092

42282 Монеты

СообщениеДобавлено: Пн, 24 Авг, 2009 18:08    Заголовок сообщения: Ответить с цитатой

Диву даюсь. Почему у меня элементарное:
Код:
mail($args);

на Fsay превосходно работает... я бы копал не скрипт, а куда шлем...
_________________

До выхода LiteDiary 0.3.0: парам-пам-пам-пам! Она уже здесь!
Вернуться к началу
Посмотреть профиль Отправить личное сообщение Посетить сайт автора
Johnny
Два пингвина
Два пингвина


Зарегистрирован: 28.06.2008
Сообщения: 466
Откуда: Краснодар
878 Монеты

СообщениеДобавлено: Пн, 24 Авг, 2009 18:57    Заголовок сообщения: Ответить с цитатой

vohomov
ни новая редакция скрипта, ни замена электропочты на ***@kubanfans.ru не помогло: письма по-прежнему не доходят.
_________________
Вернуться к началу
Посмотреть профиль Отправить личное сообщение Посетить сайт автора
vohomov
Хостинг — это наше всё!
Хостинг — это наше всё!


Зарегистрирован: 17.07.2009
Сообщения: 183

20631 Монеты

СообщениеДобавлено: Пн, 24 Авг, 2009 19:15    Заголовок сообщения: Ответить с цитатой

Значит 100 % проблема в чём-то другом. У меня всё при тех же нормальных условиях sendmail письма отправляет.

P.S. Настоятельно, очень рекомендую вам завести ящик на яндексе или на Google Mail - суть в том, что те сервера, которые вы используете для получения почты могут вобще блокировать эти сообщения просто исходя из еомишного ip-адреса (многие антиспам-листы, как показывает практика, часто блокируют сообщения с бесплатных хостингов, даже не заносят в папку "спам". А вот на таких проверенных сервисах как gmail письмо точно придёт и будет положено либо во "входящие " либо в "спам". Это точно.
--
Этот пример кода говорит "сообщение отправлено" только тогда, когда sendmail отправил сообщение. так что если пишет, что отправлено (там эту фразу вверху на чёрном фоне у вас кстати плохо видно), то это значит отправлено - а всё что дальше - это всё фентифлюшки с доставкой.
_________________
Любителям и знатокам географии | Помощь по химии онлайн
Вернуться к началу
Посмотреть профиль Отправить личное сообщение Посетить сайт автора
Показать сообщения:   
Начать новую тему   Ответить на тему    Список форумов EOMY.NET -> Программирование для WEB Часовой пояс: GMT
На страницу 1, 2  След.
Страница 1 из 2

 


EOMY TOP 100 Rambler's Top100   Рейтинг@Mail.ru    



Powered by phpBB © 2001, 2005 phpBB Group


Рейтинг SIMPLETOP.NET