€
$
₴
₽
EN
RU
Vmeste.EU
Лента
Каталог
Файлы
Форумы
Услуги
Основное
Radiotalk
Пользовательское
Программирование
6 •
Посмотреть все темы
Oбработчик mail.php
1
6703
Андрей
@ZloVeЩиЙ
20.11.2013
Помогите написать простой PHP обработчик для отправки данных из полей на указанный e-mail
Вот сверстал такую
form.php
а обработчик не могу прикрутить.
Искал в интернете, подобных масса, скачал, залил - работает (:
добавил свои поля - не работает ):
20090
Dimitry
@Dimitry
21.11.2013
Дык а чего там прикручивать одна строка кода можно сказать)
if($_POST[send]) mail("for@mail.ru","tema","text $_POST[name]");
можешь вставлять туда свои переменные, пример для имени: $_POST[name]
6703
Андрей
@ZloVeЩиЙ
21.11.2013
Для тебя одна строка кода, а для меня целая наука (:
Я пока только на уровне теории с php.
Я вижу код, разбиваю его на логические части, понимаю что к чему... а когда доходит дело до практики - теряюсь.
Вот например эту строку я вижу так:
if($_POST[send]) mail("for@mail.ru","tema","text $_POST[name]");
если нажата кнопка имя которой =
send
функция
mail("");
отправит на мыло
for@mail.ru
меседж с темой
tema
и содержимое его (меседжа) будет
text имя
из инпута имя которого = name
// поправьте если ошибаюсь...
[spoiler=анегдот по этому поводу]На паре по php.
Препод(П): Что значит «!=» ?
Студентка (С): Не равно.
П: А это «!==»?
С: Эмм.... Ваще не равно.[/spoiler]
20090
Dimitry
@Dimitry
21.11.2013
верно
6703
Андрей
@ZloVeЩиЙ
21.11.2013
Накидал тут, может кому надо будет, забирайте:
<?
if (!isset($_POST['name']) or empty($_POST['name'])) {
$error1 = "Вы забыли представиться!<br />";
} else $error1 = NULL;
if (!isset($_POST['email']) or empty($_POST['email'])) {
$error2 = "Вы не указали e-mail!<br />";
} else $error2 = NULL;
if (!isset($_POST['phone']) or empty($_POST['phone'])) {
$error3 = "Вы не указали номер телефона!<br />";
} else $error3 = NULL;
if (empty($error1) and empty($error2) and empty($error3)) {
$to = "
mymail@gmail.com
";
$subject = "Онлайн заказ с сайта";
$name = $_POST['name'];
$phone = $_POST['phone'];
$email = $_POST['email'];
$datea = $_POST['datea'];
$datez = $_POST['datez'];
$adult = $_POST['adult'];
$child = $_POST['child'];
$text = $_POST['text'];
$message = "
Меня зовут: ".$name."
Мой телефон: ".$phone."
Мой e-mail: ".$email."
Дата заезда: ".$datea." - Дата выезда: ".$datez."
Взрослых: ".$adult." - Детей: ".$child."
Сообщение: ".$text;
if (mail($to, $subject, $message)) {
echo "<div class='yeap'><b>Отправлено!</b><br>После получения заявки менеджер свяжется с Вами по телефону или e-mail для подтверждения заказа.</div> ";
} else echo "Ошибка!";
} else {
echo "<div class='err'><b>Ошибочка!<br>".$error1.$error2.$error3."</b>Обязательные поля отмечены *</div>";
}
?>
Далеко от идеала, еще бы проверку дописать, не отправлять
Сообщение:
если оно пустое например т.д.
Но главное, что основную ф-кцию исполняет!
Кстати как отправлять html? Хотелось бы оформить как то или даже рассылку можно сделать (:
Отредактировано ZloVeЩиЙ -
21.11.2013
6703
Андрей
@ZloVeЩиЙ
24.11.2013
Как правильней будет?
if ($_POST['send'])
or
if (isset($_POST['send']))
Отредактировано ZloVeЩиЙ -
24.11.2013
4875
ValdeZ
@ValdeZ
24.11.2013
Поля ведь ещё стоит проверять на то, что там вообще введено. А то это прямой путь к SQL-инъекциям и не только
20090
Dimitry
@Dimitry
24.11.2013
ValdeZ
пишет:
Поля ведь ещё стоит проверять на то, что там вообще введено. А то это прямой путь к SQL-инъекциям и не только
Осталось понять где в этом скрипте SQL )
7094
Dim
@Render
24.11.2013
Dimitry
пишет:
ValdeZ
пишет:
Поля ведь ещё стоит проверять на то, что там вообще введено. А то это прямой путь к SQL-инъекциям и не только
Осталось понять где в этом скрипте SQL )
Ага, скорее XSS.
_POST, _GET - всячески фильтровать вход.данные нужно, если важна безопасность)
4875
ValdeZ
@ValdeZ
24.11.2013
Render
пишет:
Dimitry
пишет:
ValdeZ
пишет:
Поля ведь ещё стоит проверять на то, что там вообще введено. А то это прямой путь к SQL-инъекциям и не только
Осталось понять где в этом скрипте SQL )
Ага, скорее XSS.
_POST, _GET - всячески фильтровать вход.данные нужно, если важна безопасность)
Оу, перечитал код и теперь всё понятно)
Тогда да, как Рендер написал. Потому что простая проверка на то, заполнено ли поле - этого слишком мало.
6703
Андрей
@ZloVeЩиЙ
24.11.2013
Причем тут проверка? Причем тут SQL, XSS ?
Имеется ввиду если нажата кнопка сабмит с именем = имя.
if($_POST[send]) mail("for@mail.ru","tema","text $_POST[name]");
Просто дима мне привел один вариант, а я наткнулся на второй, они похожи, оба работают...
но интересует как правильней, так сказать на будущее, что бы в привычку вошло!
1555
Алексей
@TheDark
25.11.2013
ZloVeЩиЙ
, всегда использую
isset()
. Оно ведь на такой случай и
**********
. И в коде нагляднее и правильнее вроде так...
Отредактировано TheDark -
25.11.2013
6703
Андрей
@ZloVeЩиЙ
25.11.2013
Согласен.
Но зачем писать больше кода?
Пример тому, все используют
echo
в то время когда есть ему аналог
print
, который выполняет одну и ту же функцию но имеет на один символ меньше... программисты они по сути же своей - ленивые существа (:
1555
Алексей
@TheDark
25.11.2013
ZloVeЩиЙ
, та же тема с
exit()
и
die()
- оба синонимы) использую по настроению (:
Отредактировано TheDark -
25.11.2013
8497
Степан
@Trilby
25.11.2013
Без isset'а можно пережить, а вот
**********
'ом все же стоит вводимые данные обернуть.