|
|
|
| Прочитал много тем на форуме, но что-то все ровно не отобью дупля что делать? Проблема заключается в том, что отправка происходит на маил.ру. Письма с пустым сообщением, но заполнена тема, доходят. Если пишешь тело письма, то письмо не приходит. Еще если вставляешь от кого, т.е. е-маил адресс, то письмо доходит и с заполненным телом письма (это все для кириллицы). На английском все нормально в любом варианте. Что может быть есть идеи | |
|
|
|
|
|
|
|
для: magic
(16.09.2009 в 13:33)
| | А код можно увидеть? | |
|
|
|
|
|
|
|
для: magic
(16.09.2009 в 13:33)
| | обработка полученых данных
if (!empty($_POST['send']))
{
// обьявляем переменные
//////////////////////////////////
$back="Вернитесь <a href='javascript:history.back(1)' class='text1'><B style='color: Red;'>назад</B></a>";
$email = $_POST['email'];
$tema = $_POST['tema'];
$text = $_POST['text'];
$num = $_POST['num'];
$rand = $_POST['rand'];
// 1. Блок проверки правильности ввода данных
/////////////////////////////////////////////////
// удаляем лишние пробелы
$tema = trim($tema);
// удаляем HTML-теги
$email = htmlspecialchars ($email);
$tema = htmlspecialchars($tema);
$text = htmlspecialchars($text);
//проверяем тему
if (empty($tema)) {echo "<body bottommargin='0' topmargin='0' rightmargin='0' leftmargin='0'><table border='0' height='100%' width='100%' class='text2'><tr><td valign='middle' align='center'>Некоторые поля формы пустые. $back пожалуйста и заполните оставшиеся поля.</td></tr></table></body>"; exit("<HTML><HEAD><META HTTP-EQUIV='Refresh' CONTENT='5; URL=$_SERVER[PHP_SELF]'></HEAD></HTML>");}
//проверяем защитный код
if(!empty($num) && !empty ($rand))
{
if ($num!=$rand) {echo "<body bottommargin='0' topmargin='0' rightmargin='0' leftmargin='0'><table border='0' height='100%' width='100%' class='text2'><tr><td valign='middle' align='center'>Код на картинке должен совпадать с кодом введеным Вами. $back и исправьте ошибку.</td></tr></table></body>"; exit("<HTML><HEAD><META HTTP-EQUIV='Refresh' CONTENT='5; URL=$_SERVER[PHP_SELF]'></HEAD></HTML>");}
}
else {echo "<body bottommargin='0' topmargin='0' rightmargin='0' leftmargin='0'><table border='0' height='100%' width='100%' class='text2'><tr><td valign='middle' align='center'>$back пожалуйста и заполните форму до конца.</td></tr></table></body>"; exit("<HTML><HEAD><META HTTP-EQUIV='Refresh' CONTENT='5; URL=$_SERVER[PHP_SELF]'></HEAD></HTML>");}
// Если введён e-mail проверяем его на соответсвие
if (!empty($email))
{
if(!eregi("^([0-9a-z]([-_.]?[0-9a-z])*@[0-9a-z]([-.]?[0-9a-z])*\\.[a-wyz][a-z](fo|g|l|m|mes|o|op|pa|ro|seum|t|u|v|z)?)$",$email)) {echo "<body bottommargin='0' topmargin='0' rightmargin='0' leftmargin='0'><table border='0' height='100%' width='100%' class='text2'><tr><td valign='middle' align='center'>$back, и введите пожалуйста корректный Email. </td></tr></table></body>"; exit("<HTML><HEAD><META HTTP-EQUIV='Refresh' CONTENT='5; URL=$_SERVER[PHP_SELF]'></HEAD></HTML>");}
}
// Если на сервер не включены "магические кавычки" обрабатываем введённые пользователями данные функцией mysql_escape_string()
if (!get_magic_quotes_gpc())
{
$tema = mysql_escape_string($tema);
$email = mysql_escape_string($email);
$text = mysql_escape_string($text);
}
$headers = "From: ".$_REQUEST["email"]." <".$_REQUEST["email"].">\r\n"."MIME-Version: 1.0\r\n"."Content-Type: text/plain; charset=windows-1251\r\n"."Content-Transfer-Encoding: 8bit";
}
|
непосредственно отправка
if(!empty($_POST['send']))
{
if(mail("qaz@mail.ru", "$tema", "$text", "$headers"))
{
echo "<HTML><HEAD><META HTTP-EQUIV='Refresh' CONTENT='0; URL=$_SERVER[PHP_SELF]'></HEAD></HTML>";
echo "Письмо успешно отправлено";
}
else { echo "<font color='#FF0000'>Произошла ошибка - письмо не отправлено</font>"; }
}
else echo " ";
|
| |
|
|
|
|
|
|
|
для: magic
(16.09.2009 в 14:06)
| | Хотя бы
<?php поставье после [ code ]
невозможно читать | |
|
|
|
|
|
|
|
для: magic
(16.09.2009 в 14:06)
| | обработка полученных данных:
<?php
if (!empty($_POST['send']))
{
// обьявляем переменные
//////////////////////////////////
$back="Вернитесь <a href='javascript:history.back(1)' class='text1'><B style='color: Red;'>назад</B></a>";
$email = $_POST['email'];
$tema = $_POST['tema'];
$text = $_POST['text'];
$num = $_POST['num'];
$rand = $_POST['rand'];
// 1. Блок проверки правильности ввода данных
/////////////////////////////////////////////////
// удаляем лишние пробелы
$tema = trim($tema);
// удаляем HTML-теги
$email = htmlspecialchars ($email);
$tema = htmlspecialchars($tema);
$text = htmlspecialchars($text);
//проверяем тему
if (empty($tema)) {echo "<body bottommargin='0' topmargin='0' rightmargin='0' leftmargin='0'><table border='0' height='100%' width='100%' class='text2'><tr><td valign='middle' align='center'>Некоторые поля формы пустые. $back пожалуйста и заполните оставшиеся поля.</td></tr></table></body>"; exit("<HTML><HEAD><META HTTP-EQUIV='Refresh' CONTENT='5; URL=$_SERVER[PHP_SELF]'></HEAD></HTML>");}
//проверяем защитный код
if(!empty($num) && !empty ($rand))
{
if ($num!=$rand) {echo "<body bottommargin='0' topmargin='0' rightmargin='0' leftmargin='0'><table border='0' height='100%' width='100%' class='text2'><tr><td valign='middle' align='center'>Код на картинке должен совпадать с кодом введеным Вами. $back и исправьте ошибку.</td></tr></table></body>"; exit("<HTML><HEAD><META HTTP-EQUIV='Refresh' CONTENT='5; URL=$_SERVER[PHP_SELF]'></HEAD></HTML>");}
}
else {echo "<body bottommargin='0' topmargin='0' rightmargin='0' leftmargin='0'><table border='0' height='100%' width='100%' class='text2'><tr><td valign='middle' align='center'>$back пожалуйста и заполните форму до конца.</td></tr></table></body>"; exit("<HTML><HEAD><META HTTP-EQUIV='Refresh' CONTENT='5; URL=$_SERVER[PHP_SELF]'></HEAD></HTML>");}
// Если введён e-mail проверяем его на соответсвие
if (!empty($email))
{
if(!eregi("^([0-9a-z]([-_.]?[0-9a-z])*@[0-9a-z]([-.]?[0-9a-z])*\\.[a-wyz][a-z](fo|g|l|m|mes|o|op|pa|ro|seum|t|u|v|z)?)$",$email)) {echo "<body bottommargin='0' topmargin='0' rightmargin='0' leftmargin='0'><table border='0' height='100%' width='100%' class='text2'><tr><td valign='middle' align='center'>$back, и введите пожалуйста корректный Email. </td></tr></table></body>"; exit("<HTML><HEAD><META HTTP-EQUIV='Refresh' CONTENT='5; URL=$_SERVER[PHP_SELF]'></HEAD></HTML>");}
}
// Если на сервер не включены "магические кавычки" обрабатываем введённые пользователями данные функцией mysql_escape_string()
if (!get_magic_quotes_gpc())
{
$tema = mysql_escape_string($tema);
$email = mysql_escape_string($email);
$text = mysql_escape_string($text);
}
$headers = "From: ".$_REQUEST["email"]." <".$_REQUEST["email"].">\r\n"."MIME-Version: 1.0\r\n"."Content-Type: text/plain; charset=windows-1251\r\n"."Content-Transfer-Encoding: 8bit";
}
?>
|
Непосредственно отправка:
<?php
if(!empty($_POST['send']))
{
if(mail("qaz@mail.ru", "$tema", "$text", "$headers"))
{
echo "<HTML><HEAD><META HTTP-EQUIV='Refresh' CONTENT='0; URL=$_SERVER[PHP_SELF]'></HEAD></HTML>";
echo "Письмо успешно отправлено";
}
else { echo "<font color='#FF0000'>Произошла ошибка - письмо не отправлено</font>"; }
}
else echo " ";
?>
|
| |
|
|
|
|
|
|
|
для: magic
(16.09.2009 в 14:40)
| | кто-нибудь естьььььь | |
|
|
|
|
|
|
|
для: magic
(16.09.2009 в 15:42)
| | У меня точного ответа нет, но глаз зацепился за то, что отправляете вы тепло письма в виде текста
А сам текст у вас оформлен в виде HTML... вряд ли дело в этом, но возможно спам-фильтр mail.ru за это зацепляется? | |
|
|
|
|
|
|
|
для: cheops
(16.09.2009 в 15:44)
| | Почему в виде HTML? Приходит в текстовом виде. Если автор указывает е-маил, то тело письма приходит, а если просто тема и текст сообщения, то письмо теряется. | |
|
|
|
|
|
|
|
для: magic
(16.09.2009 в 15:42)
| | Вот я недавно разбирался и конспектировал свои поползновения. Там есть ответ на Ваш вопрос. | |
|
|
|
|
|
|
|
для: Николай2357
(16.09.2009 в 16:27)
| | Офтоп:
Что бы => Чтобы
По этому => Поэтому
гарантированно и корректно => всегда и при этом корректно (всегда корректно) | |
|
|
|
|
|
|
|
для: neadekvat
(16.09.2009 в 17:35)
| | Сеньк. Нужно корректора))) | |
|
|
|
|
|
|
|
для: magic
(16.09.2009 в 14:40)
| | По самому вопросу тоже ничего сказать не могу
Но зачем вы "mysql_escape_string" исопльзуете? | |
|
|
|
|
|
|
|
для: neadekvat
(16.09.2009 в 16:11)
| | и правда :) | |
|
|
|
|
|
|
|
для: neadekvat
(16.09.2009 в 16:11)
| | Для экранирования спецсимволов, а что что-то не так. | |
|
|
|
|
|
|
|
для: magic
(16.09.2009 в 16:25)
| | С какой целью вы пытаетесь что-то экранировать?
И ничего в названии функиции вас тоже не смущает?
И даже то, что если все это сработает, человеку придет письмо такого содержания:
"люблю Д\'артаньяна" и "Привет админам сайта \"кавычки\"! Рад вас видеть онлайн" | |
|
|
|
|
|
|
|
для: magic
(16.09.2009 в 16:25)
| | спецсимвол - символ со специальным назначением / специальными свойствами.
Символы, облададающие специальными свойствами, в рамках какого языка Вы пытаетесь заэкранировать?
И где этот язык в скрипте у Вас применяется?
Не так. | |
|
|
|
|
|
|
|
для: Trianon
(16.09.2009 в 17:38)
| | Ну, ладно зафукали вообще :(. Я пытаюсь обезопасить свой сайт, лучьше больше, чем потом быть жертвой. Эта функция не чего не далает плохого, но конечно если она не нужна я ее уберу. Это функция относится к MySQL? Честно говоря я и не придал этому значение, применял все функции по обработке и защите и эту сунул (ну лохонулся согласен). | |
|
|
|
|
|
|
|
для: magic
(16.09.2009 в 20:33)
| | Нету функций по обработке и защите. Все функции обрабатывают данные - и ни одна из них не защищает.
А обезопасить сайт Вам удастся, лишь понимая, что когда и зачем нужно делать с данными.
А не тупо слизывая набившие оскомину строки.
Сейчас (я имею в виду - в этом скрипте, который письма шлет) ВЫ не делаете и десятой части обработки данных, требуемой логикой процесса. | |
|
|
|
|
|
|
|
для: Trianon
(16.09.2009 в 21:34)
| | Я готов учится, для этого я тут и пишу. Что надо делать что бы обезопасить свой сайт. Что в этом примере требует логика процесса | |
|
|
|
|
|
|
|
для: magic
(16.09.2009 в 21:54)
| | Николай2357 в (16.09.2009 в 16:27) дал ссылку.
Возможно, там не всё идеально терминологически, но в целом, как отправную точку можно использовать.
И если готовы учиться - самое время заинтересоваться и решить задачу 21. От многих иллюзий избавитесь. | |
|
|
|
|
|
|
|
для: Trianon
(16.09.2009 в 22:09)
| | Эту ссылку я уже обработал, заработало, большое спасибо, есть одно но. Теперь письма приходят, но полностью в вопросительных знаках. И тема и тело письма. Что-то с кодировкой наверно теперь не так. | |
|
|
|
|
|
|
|
для: magic
(16.09.2009 в 21:54)
| | Спасибо всем, разобрался, все работает | |
|
|
|