PHP在页面重新加载时与我们联系发送表单
我是PHP新手,正在尝试为我的网站建立一个简单的联系方式。我已经发送了表单,但由于某些原因,每次我重新加载页面时,它也会发送一条空白消息。我在下面贴了一些表格 如果您能提供任何帮助/提示,我们将不胜感激PHP在页面重新加载时与我们联系发送表单,php,html,forms,email,contact-form,Php,Html,Forms,Email,Contact Form,我是PHP新手,正在尝试为我的网站建立一个简单的联系方式。我已经发送了表单,但由于某些原因,每次我重新加载页面时,它也会发送一条空白消息。我在下面贴了一些表格 如果您能提供任何帮助/提示,我们将不胜感激 <?php $name_error = ""; $name = ""; if ($_SERVER["REQUEST_METHOD"] == "POST") { if (empty($_POST["name"])) {
<?php
$name_error = "";
$name = "";
if ($_SERVER["REQUEST_METHOD"] == "POST") {
if (empty($_POST["name"])) {
$name_error = "Whoops! Please enter your full name";
} else {
$name = test_input($_POST["name"]);
if (!preg_match("/^[a-zA-Z ]*$/",$name)) {
$name_error = "Whoops! Only letters and white spaces are allowed in a name";
}
}
if ($name_error == ''){
$message_body = '';
unset($_POST['submit']);
foreach ($_POST as $key => $value){
$message_body .= "$key: $value\n";
}
$to = 'myemail@gmail.com';
$subject = 'Contact Us Form Submission';
if (mail($to, $subject, $message_body )){
$success = "Your message has been sent. A representative will be in contact with you shortly.";
$name = $email = $phone = $message = $inquiry = $hear = $success = '';
}
}
function test_input($data) {
$data = trim($data);
$data = stripslashes($data);
$data = htmlspecialchars($data);
return $data;
}
?>
您的“邮件”逻辑需要位于服务器请求方法中,一个简单的解决方法是复制您的if逻辑,将其包装在您的邮件逻辑中。i、 e
if($_SERVER["REQUEST_METHOD"] == "POST"){
if (mail($to, $subject, $message_body )){
$success = "Your message has been sent. A representative will be in contact with you shortly.";
$name = $email = $phone = $message = $inquiry = $hear = $success = '';
}
}
当然,您也可以删除当前的if语句结束括号,并在代码末尾将其丢弃(因为没有必要过早地中断if语句)
i、 e
您需要将post检查包装在整个发送代码周围,它当前将关闭到早期。。实际上,它在上面的代码中根本没有关闭。停止从w3sh复制代码…,尤其是那个不懂的test\u input()
函数。
<?php
$name_error = "";
$name = "";
if ($_SERVER["REQUEST_METHOD"] == "POST") {
if (empty($_POST["name"])) {
$name_error = "Whoops! Please enter your full name";
} else {
$name = test_input($_POST["name"]);
if (!preg_match("/^[a-zA-Z ]*$/",$name)) {
$name_error = "Whoops! Only letters and white spaces are allowed in a name";
}
}
if ($name_error == ''){
$message_body = '';
unset($_POST['submit']);
foreach ($_POST as $key => $value){
$message_body .= "$key: $value\n";
}
$to = 'myemail@gmail.com';
$subject = 'Contact Us Form Submission';
if (mail($to, $subject, $message_body )){
$success = "Your message has been sent. A representative will be in contact with you shortly.";
$name = $email = $phone = $message = $inquiry = $hear = $success = '';
}
}
// <--- ADD CLOSING BRACKET HERE
function test_input($data) {
$data = trim($data);
$data = stripslashes($data);
$data = htmlspecialchars($data);
return $data;
}