【发布时间】:2014-08-02 17:55:37
【问题描述】:
所以基本上我正在尝试创建一个表单,用户可以输入他们的姓名、电子邮件、消息等,单击提交,信息被编译并发送到我的电子邮件地址。当你点击提交时,你会被重定向到一个新页面,joeyorlando.me/php/index.php。
单击提交时我希望在提交按钮附近弹出一个小框,上面写着“感谢您的提交”(或类似的东西),并且页面不会被重定向,而是您将与表单保持在同一页面上。
如何防止提交按钮将您发送到这个新页面?任何建议将不胜感激!
<?php
$firstname = $_POST['firstname'];
$lastname = $_POST['lastname'];
$company = $_POST['company'];
$phone = $_POST['phone'];
$email = $_POST['email'];
$message = $_POST['message'];
$human = $_POST['human'];
$from = 'From: $firstname $lastname';
$to = 'joey@joeyorlando.me';
$subject = 'You Have a New Form Submission!';
$body = "From: $firstname $lastname\n Company: $company Phone: $phone \n E-Mail: $email\n Message:\n $message";
if ($_POST['submit']) {
if ($firstname != '' && $lastname != '' && $email != '' && $message != '') {
if ($human == '14') {
if (mail ($to, $subject, $body, $email)) {
echo '<p>Your message has been sent!</p>';
} else {
echo '<p>Something went wrong, go back and try again!</p>';
}
} else if ($_POST['submit'] && $human != '14') {
echo '<p>You answered the question incorrectly!</p>';
}
} else {
echo '<p>You need to fill in all required fields!!</p>';
}
}
?>
【问题讨论】:
-
您可以使用AJAX request 执行此操作,否则您将呈现整个页面(并且作为 POST,您应该重定向用户以防止刷新页面时重新发布
-
只是一个快速的补充,看起来你正在用数字 14 做一些垃圾邮件检查。假设图像不是动态的,这不是一个好主意。我建议使用Recaptcha 之类的东西。此外,您可能希望在
POST值上使用htmlspecialchars。否则,您应该在安全方面做得很好。