IMHO.WS

IMHO.WS (https://www.imho.ws/index.php)
-   Веб-программирование (https://www.imho.ws/forumdisplay.php?f=29)
-   -   Заполнение формы->показ данных "echo"->отправка mail() (https://www.imho.ws/showthread.php?t=92426)

killhunter 11.09.2005 23:26

Заполнение формы->показ данных "echo"->отправка mail()
 
Здравствуйте.
Подскажите, пожалуйста.
На данный момент данные с сайта отправляются через форму с помощью функции mail() (PHP).

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

В принципе конструкция <?php echo $переменная ?> отображает ранее внесенные в форму данные. Но как сделать, чтобы эти данные можно было дальше отправить с помощью mail()

Заранее спасибо.

Naked 12.09.2005 13:35

Что-то я вопрос не понял видимо...
Если нужно, чтобы сразу после показа данных отправлялось на мыло - то сразу после echo $переменная пишем mail ("адрес", $переменная), а если нужно чтобы сначала отобразилось, а потом по нажатию кнопки отправилось, то делаем <form action="страница" method=post> дальше <input type=hidden name="имя переменной" value="переменная"> и так для всех переменных, которые должны отправиться по mail, затем <input type=submit name=submitmail ......></form> и в принципе все - следующим шагом проверяешь в начале скрипта переменную submitmail и отправляешь mail'ом все переменные, которые передал hidden'ом, если что не так, сорри :p

Heo 12.09.2005 18:59

Цитата:

The_naked:
<input type=hidden name="имя переменной" value="переменная">
Поправка:
Код HTML:

<input type=hidden name="имя переменной" value="значение переменной">
Пример:
Код HTML:

<input type=hidden name="to" value="123@123.com">
Переменная $_POST['to'] (или просто $to, если Register globals = On) будет иметь значение 123@123.com

Trotil 13.09.2005 01:28

И без меня все уже написано, но стоило бы вмешиваться, если бы не одно обстоятельство...
Цитата:

Сообщение от Heo
Переменная $_POST['to'] (или просто $to, если Register globals = On) будет иметь значение 123@123.com

Никаких ЕСЛИ!!! В любом случае используйте $_POST['to'] . Принципиально! Здесь затрагиваются не проблема переноса сайта на сервак с Register globals = Off, а затрагиваются вопросы безопасности! Во всех нормальных учкебниках и спецстатьях указываются ряд правил (причем несложных), которые резко уменьшают вероятностность взлома вашего сайта. Одно из таких правил я описал выше. Считайте, что наружение этих правил сродни пересечению двойной сплошной или проезда на красный сигнал светофора. Следует это помнить!

Naked 13.09.2005 08:16

Цитата:

Trotil:
Никаких ЕСЛИ!!! В любом случае используйте $_POST['to']
А я бы использовал $_REQUEST['to'] - универсальней, никогда не знаешь, каким именно методом будешь передавать параметры, а есди таковых много, то потом не очень просто менять $_POST на $_GET или наоборот... :p

plohich 13.09.2005 17:55

Цитата:

The_naked:
А я бы использовал $_REQUEST['to'] - универсальней, никогда не знаешь, каким именно методом будешь передавать параметры, а есди таковых много, то потом не очень просто менять $_POST на $_GET или наоборот...
Если не знаешь, то да, но если решено что данные отправляются только через POST, то не стоит делать ошибок, более того, это хороший путь отлавливать кульхацкеров. Например:
Код:

if ((isset($_GET['var']))or(isset($_COOKIE['var']))) {
 // сообщаем админу о нестандартных переменных (читай попытка взлома)
} elseif (isset($_POST['var'])) {
 //do something
}

отлично помогает отлавливать разных умников в многопользовательских системах.

killhunter 15.09.2005 23:22

Уф. Спасибо большое за подробные рекомендации и помощь.
Наконец-то прерву (хотя бы на время), поток спама через сайт
Буду разбираться и делать.

<Descriptor> 16.09.2005 11:06

Цитата:

plohich:
Если не знаешь, то да, но если решено что данные отправляются только через POST, то не стоит делать ошибок, более того, это хороший путь отлавливать кульхацкеров.
Использование $_POST, конечно, дело правильное. Но разве можно "сломать сайт" в таком простейшем случае (когад всего-лишь идет отправка данных формы на мыло)?

Trotil 16.09.2005 11:20

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

P.S. Я обучаюсь на специалиста по информационной безопасности, и почти все преподаватели ставят человеческий фактор (то бишь глупость или форменное наплевательство на элементарные правила) ставят превыше всего остальным факторам. И такое отношение распространено гораздо больше, чем можно предполагать.


Часовой пояс GMT +4, время: 00:53.

Powered by vBulletin® Version 3.8.5
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.