Я создаю форму HTML, которая ссылается на файл PHP для отправки электронной почты. Тем не менее, люди продолжают нажимать на страницу действий формы, которая затем отправляет мне электронное письмо без какой-либо заполненной информации. Я бы хотел решить эту проблему, защищая эту страницу действий от внешних обращений.Как заставить людей случайно получить доступ к действию формы Страница
Вот мой код:
HTML форма:
<form name="homecontact" action="/admin/formactions/writequick.php" method="POST">
<input name="name" placeholder="Name"></input>
<input name="email" placeholder="Email"></input>
<input name="phone" placeholder="Phone"></input>
<textarea name="message" placeholder="Message"></textarea>
<input type="submit" style="background:MidnightBlue; color:white;">
</form>
PHP скрипт:
<?php
$to = '[email protected]';
$subjectadmin = 'CONTACT FORM from My Website';
$subjectuser = 'Contact Confirmation from My Website';
$name = $_POST['name'];
$email = $_POST['email'];
$phone = $_POST['phone'];
$comments = $_POST['message'];
$messageadmin = 'A customer just submitted a form on Your Website. Here is their message:' . "\n" . "\n" . 'Name:' . ' ' . $name . "\n" . 'Email:' . ' ' . $email . "\n" . 'Phone:' . ' ' . $phone . "\n" . 'Comments:' . ' ' . $comments . "\n";
$messageuser = 'Hello,' . ' ' . $name . '!' . "\n" . "\n" . 'Thank you for contacting My Website! We have received your contact form and we will get back to you as soon as we can.' . "\n" . "\n" . 'Just for your records, here is what you submitted to us:' . "\n" . 'Name:' . ' ' . $name . "\n" . 'Email:' . ' ' . $email . "\n" . 'Phone:' . ' ' . $phone . "\n" . 'Comments:' . ' ' . $comments . "\n" . "\n" . 'Thank you for choosing My Website!';
$headers = 'From: [email protected]' . "\r\n" .
'X-Mailer: PHP/' . phpversion();
mail($to, $subjectadmin, $messageadmin, $headers);
mail($email, $subjectuser, $messageuser, $headers);
?>
Форма работает отлично, но я просто не знаю, как удержать людей от удара эту страницу действий, если они не пройдут через форму.
Вы должны использовать 'isset()' и 'empty()' с условными операторами. Сессии и токены были бы приятным дополнением. –
UPDATE: Я попытался найти все решения на странице, но ничего не работает. Я знаю, что это проблема, а не вы, но есть ли какие-либо предложения? Спасибо! –
Вы видели ответ, который я написал? http://stackoverflow.com/a/26113089/ –