Вы не зашли.

#1 

ZloVeЩиЙ
Профи
Имя: Andrew
Зарегистрирован: 2008-01-15
Сообщений: 6702
На форуме: 1484 час.
Репутация: 448 (85%) ±
Инфо  Вебсайт  Написать

Помогите написать простой PHP обработчик для отправки данных из полей на указанный e-mail
Вот сверстал такую form.php а обработчик не могу прикрутить.
Искал в интернете, подобных масса, скачал, залил - работает (:
добавил свои поля - не работает ):
http://imgs.su/users/44159/1384965455.png


[img]http://imgs.su/tmp/1315727312-616.jpg[/img] - use it.

Неактивен

#2 

Dimitry
Ниндзя по зачистке капусты
Имя: Дмитрий
Откуда: Германия
Зарегистрирован: 2003-04-18
Сообщений: 18890
На форуме: 1825 час.
Репутация: 1247 (99%) ±
Инфо  Вебсайт  Написать

Дык а чего там прикручивать одна строка кода можно сказать)

if($_POST[send]) mail("for@mail.ru","tema","text  $_POST[name]");

можешь вставлять туда свои переменные, пример для имени: $_POST[name]


Моя анкета на vmeste.eu
Если сообщение Вам помогло, отблагодарите участника повысив его репутацию!
PS. То, что нас не убивает, то делает нас сильнее!

Неактивен

#3 

ZloVeЩиЙ
Профи
Имя: Andrew
Зарегистрирован: 2008-01-15
Сообщений: 6702
На форуме: 1484 час.
Репутация: 448 (85%) ±
Инфо  Вебсайт  Написать

Для тебя одна строка кода, а для меня целая наука (:
Я пока только на уровне теории с php.
Я вижу код, разбиваю его на логические части, понимаю что к чему... а когда доходит дело до практики - теряюсь.
Вот например эту строку я вижу так:

если нажата кнопка имя которой = send функция mail(""); отправит на мыло for@mail.ru меседж с темой tema и содержимое его (меседжа) будет text имя из инпута имя которого = name
// поправьте если ошибаюсь...


анегдот по этому поводу


[img]http://imgs.su/tmp/1315727312-616.jpg[/img] - use it.

Неактивен

#4 

Dimitry
Ниндзя по зачистке капусты
Имя: Дмитрий
Откуда: Германия
Зарегистрирован: 2003-04-18
Сообщений: 18890
На форуме: 1825 час.
Репутация: 1247 (99%) ±
Инфо  Вебсайт  Написать

верно


Моя анкета на vmeste.eu
Если сообщение Вам помогло, отблагодарите участника повысив его репутацию!
PS. То, что нас не убивает, то делает нас сильнее!

Неактивен

#5 

ZloVeЩиЙ
Профи
Имя: Andrew
Зарегистрирован: 2008-01-15
Сообщений: 6702
На форуме: 1484 час.
Репутация: 448 (85%) ±
Инфо  Вебсайт  Написать

Накидал тут, может кому надо будет, забирайте:

<?
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ЩиЙ (2013-11-21 19:29:14)


[img]http://imgs.su/tmp/1315727312-616.jpg[/img] - use it.

Неактивен

#6 

ZloVeЩиЙ
Профи
Имя: Andrew
Зарегистрирован: 2008-01-15
Сообщений: 6702
На форуме: 1484 час.
Репутация: 448 (85%) ±
Инфо  Вебсайт  Написать

Как правильней будет?

if ($_POST['send'])
or
if (isset($_POST['send']))

Отредактированно ZloVeЩиЙ (2013-11-24 04:45:41)


[img]http://imgs.su/tmp/1315727312-616.jpg[/img] - use it.

Неактивен

#7 

ValdeZ
Moderator
Имя: Владислав
Откуда: Украина, Запорожье
Зарегистрирован: 2008-02-09
Сообщений: 4874
На форуме: 860 час.
Репутация: 347 (97%) ±
Инфо  Написать

Поля ведь ещё стоит проверять на то, что там вообще введено. А то это прямой путь к SQL-инъекциям и не только

Неактивен

#8 

Dimitry
Ниндзя по зачистке капусты
Имя: Дмитрий
Откуда: Германия
Зарегистрирован: 2003-04-18
Сообщений: 18890
На форуме: 1825 час.
Репутация: 1247 (99%) ±
Инфо  Вебсайт  Написать

Сообщение от ValdeZ:

Поля ведь ещё стоит проверять на то, что там вообще введено. А то это прямой путь к SQL-инъекциям и не только

Осталось понять где в этом скрипте SQL )


Моя анкета на vmeste.eu
Если сообщение Вам помогло, отблагодарите участника повысив его репутацию!
PS. То, что нас не убивает, то делает нас сильнее!

Неактивен

#9 

Render
Moderator
Зарегистрирован: 2007-12-18
Сообщений: 6906
На форуме: 1364 час.
Репутация: 764 (97%) ±
Инфо  Написать

Сообщение от Dimitry:

Сообщение от ValdeZ:

Поля ведь ещё стоит проверять на то, что там вообще введено. А то это прямой путь к SQL-инъекциям и не только

Осталось понять где в этом скрипте SQL )

Ага, скорее XSS.
_POST, _GET - всячески фильтровать вход.данные нужно, если важна безопасность)

Неактивен

#10 

ValdeZ
Moderator
Имя: Владислав
Откуда: Украина, Запорожье
Зарегистрирован: 2008-02-09
Сообщений: 4874
На форуме: 860 час.
Репутация: 347 (97%) ±
Инфо  Написать

Сообщение от Render:

Сообщение от Dimitry:

Сообщение от ValdeZ:

Поля ведь ещё стоит проверять на то, что там вообще введено. А то это прямой путь к SQL-инъекциям и не только

Осталось понять где в этом скрипте SQL )

Ага, скорее XSS.
_POST, _GET - всячески фильтровать вход.данные нужно, если важна безопасность)

Оу, перечитал код и теперь всё понятно)
Тогда да, как Рендер написал. Потому что простая проверка на то, заполнено ли поле - этого слишком мало.

Неактивен

#11 

ZloVeЩиЙ
Профи
Имя: Andrew
Зарегистрирован: 2008-01-15
Сообщений: 6702
На форуме: 1484 час.
Репутация: 448 (85%) ±
Инфо  Вебсайт  Написать

Причем тут проверка? Причем тут SQL, XSS ?
Имеется ввиду если нажата кнопка сабмит с именем = имя.

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


[img]http://imgs.su/tmp/1315727312-616.jpg[/img] - use it.

Неактивен

#12 

TheDark
Знаток
Зарегистрирован: 2010-08-01
Сообщений: 1552
На форуме: 530 час.
Репутация: 111 (88%) ±
Инфо  Написать

ZloVeЩиЙ, всегда использую isset(). Оно ведь на такой случай и существует. И в коде нагляднее и правильнее вроде так...

Отредактированно TheDark (2013-11-25 00:10:45)

Неактивен

#13 

ZloVeЩиЙ
Профи
Имя: Andrew
Зарегистрирован: 2008-01-15
Сообщений: 6702
На форуме: 1484 час.
Репутация: 448 (85%) ±
Инфо  Вебсайт  Написать

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


[img]http://imgs.su/tmp/1315727312-616.jpg[/img] - use it.

Неактивен

#14 

TheDark
Знаток
Зарегистрирован: 2010-08-01
Сообщений: 1552
На форуме: 530 час.
Репутация: 111 (88%) ±
Инфо  Написать

ZloVeЩиЙ, та же тема с exit() и die() - оба синонимы) использую по настроению (:

Отредактированно TheDark (2013-11-25 01:16:33)

Неактивен

#15 

Trilby
miss me?
Имя: Алексей
Откуда: Default City
Зарегистрирован: 2006-08-01
Сообщений: 8493
На форуме: 801 час.
Репутация: 766 (94%) ±
Инфо  Вебсайт  Написать

Без isset'а можно пережить, а вот htmpspecialchars'ом все же стоит вводимые данные обернуть.

Неактивен

[ Generated in 0.007 seconds, 9 queries]