Подскажите где можно почитать про обработку формы.
Ситуация такая. Есть форма в файле 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 сразу отправляется пустое письмо на мыло
и как можно сделать вывод алерта о незаполненном поле и о удачной отправке сообщения?
многие уроки которые находил написаны для раздельного содержания формы и скрипта
скрипт должен идти после формы. и я бы добавил условие:
if (isset($_POST['name']) and $_POST['name']!=="") {
}
ну и смотри конечно что стоит в атрибуте action твоей формы
если все в одном файле, то так понимаю должно быть action=""
action="<?php echo $_SERVER['PHP_SELF']; ?>"
!empty($_POST['name']) об этом не подумал. но мой вариант кода тоже работать будет
@$_POST['name'] != ''
это уже из разряда быдлокода, такого я уж точно не советовал. главное, чтоб человеку был смысл понятен.
спасибо, в одном файле работает и форма и скрипт.
а проверку чем делать, чтобы алерты появлялись, javascript ?
Сори, забыл залогиниться.
если нужны алерты, то да, javascript. а просто сообщения об отправке можно и в php выводить.
подскажите еще, как вывести алерт "заполните поле" если поле пустое и алерт "спасибо за заявку" если поле заполнено и данные отправлены?
Сделал таким образом, но почему-то не показывается алерт, если поле не заполнено
Если поле заполнено, то все работает нормально
Где ошибся?
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);
}
или получается по другому, только загружаю страницу с формой, вылетает сообщение, что поле не заполнено
вопрос решен, всем спасибо!
Быстрый ответ:
Powered by dgreen
Здесь расположена полная версия этой страницы.