[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Обработка формы
kap
Подскажите где можно почитать про обработку формы.
Ситуация такая. Есть форма в файле index.php, в которой только одно поле "name" и кнопка.
по нажатию кнопки данные введенные в поле отправляются на почту, скрипт лежит в отдельном файле mail.php

<?php
$to = 'mail@mail.ru';
$subject = 'Заказ товара';
$message = $_POST['name'];
$headers = 'From: mail2@mail.ru' . "\r\n" .
'X-Mailer: PHP/' . phpversion();
mail($to, $subject, $message, $headers);
?>

можно ли сделать так, чтобы форма и скрипт находились в одном файле? если оставляю их в одном файле, то при загрузке index.php сразу отправляется пустое письмо на мыло
и как можно сделать вывод алерта о незаполненном поле и о удачной отправке сообщения?

многие уроки которые находил написаны для раздельного содержания формы и скрипта
Bolik
скрипт должен идти после формы. и я бы добавил условие:


if (isset($_POST['name']) and $_POST['name']!=="") {
//тут твой скрипт
}


ну и смотри конечно что стоит в атрибуте action твоей формы
kap
если все в одном файле, то так понимаю должно быть action=""
Bolik
action="<?php echo $_SERVER['PHP_SELF']; ?>"



!empty($_POST['name']) об этом не подумал. но мой вариант кода тоже работать будет tongue.gif
Bolik

@$_POST['name'] != ''

это уже из разряда быдлокода, такого я уж точно не советовал. главное, чтоб человеку был смысл понятен.
Guest
спасибо, в одном файле работает и форма и скрипт.
а проверку чем делать, чтобы алерты появлялись, javascript ?
kap
Сори, забыл залогиниться.
Bolik
если нужны алерты, то да, javascript. а просто сообщения об отправке можно и в php выводить.
kap
подскажите еще, как вывести алерт "заполните поле" если поле пустое и алерт "спасибо за заявку" если поле заполнено и данные отправлены?
kap
Сделал таким образом, но почему-то не показывается алерт, если поле не заполнено
Если поле заполнено, то все работает нормально
Где ошибся?

if (!empty($_POST['name'])) {
if (!empty($_POST['name'])) {

echo "<script type='text/javascript'>alert('Спасибо за заявку')</script>";

} else {
echo "<script type='text/javascript'>alert('Заполните поле')</script>";
exit;
}
$to = 'mail@yandex.ru';
$subject = 'Заказ товара';
$message = $_POST['name'];
$headers = 'From: mail@yandex.ru' . "\r\n" .
'X-Mailer: PHP/' . phpversion();
mail($to, $subject, $message, $headers);
}
kap
или получается по другому, только загружаю страницу с формой, вылетает сообщение, что поле не заполнено
kap
вопрос решен, всем спасибо!
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2025 Invision Power Services, Inc.