PHP联系人表单未提交
这是我的代码。我遇到的问题是,当我提交表格时,我感到抱歉,请重试。这是我添加的失败消息。我重新检查了我的代码,但我不确定为什么会出现此错误。我填补了每一个领域,但我仍然不知道为什么会发生。有谁能弄明白吗?这是因为如果mail$to、$subject、$message、$headers{返回false,则调用mail-inPHP联系人表单未提交,php,mysql,Php,Mysql,这是我的代码。我遇到的问题是,当我提交表格时,我感到抱歉,请重试。这是我添加的失败消息。我重新检查了我的代码,但我不确定为什么会出现此错误。我填补了每一个领域,但我仍然不知道为什么会发生。有谁能弄明白吗?这是因为如果mail$to、$subject、$message、$headers{返回false,则调用mail-in 至于失败的原因:有关于如何调试mail为什么不发送电子邮件的详细信息。请参阅PHP手册中的mail功能 如您所见,它返回bool值,在您的情况下,它返回FALSE 要快速测试
至于失败的原因:有关于如何调试mail为什么不发送电子邮件的详细信息。请参阅PHP手册中的mail功能 如您所见,它返回bool值,在您的情况下,它返回FALSE 要快速测试邮件,请对代码的这一部分进行注释
<?php
session_start();
if (!$_SESSION['loggedInUser']) {
header("Location: login.php");
}
$resultMessage = null;
include ('db.php');
$query = "SELECT * from user";
$result = mysqli_query($connection, $query);
mysqli_close($connection);
?>
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1">
<title>Client Area</title>
</head>
<body>
<?php
// Check for Header Injections
function has_header_injection($str) {
return preg_match( "/[\r\n]/", $str );
}
$missingitemname = '<p><strong> Please Enter Item Name</p></strong>';
if (isset($_POST['submit_form'])) {
$itemname = $_POST["item-name"];
$brandname = $_POST["brand"];
$description = $_POST["description"];
$availability = $_POST["availability"];
$contact = $_POST["contact-p"];
$address = $_POST["address"];
$email = $_POST["email"];
$location = $_POST["location"];
$file = $_FILES["attach"];
if (!$itemname) {
$errors .= $missingitemname;
} else {
$itemname = filter_var($itemname, FILTER_SANITIZE_STRING);
}
if (!$email) {
$errors .= $missingemail;
} else {
$email = filter_var($email, FILTER_SANITIZE_EMAIL);
if (!filter_var($email, FILTER_VALIDATE_EMAIL)) {
$errors .= $invalidEmail;
}
}
if (!$brandname) {
$errors .= $missingbrandname;
} else {
$brandname = filter_var($brandname, FILTER_SANITIZE_STRING);
}
if ($errors) {
$resultMessage = '<div class="alert alert-danger">'. $errors .'</div>';
}
else {
$to = "adamskhan123@gmail.com";
$subject ="New Contact";
$message ="<p>Item Name: $itemname.</p>
<p>Brand: $brandname.</p>
<p>Description: $description.</p>
<p>Availability: $availability.</p>
<p>Contact Person: $contact</p>
<p>Email: $email</p>
<p>Location: $location</p>
";
$headers ="Content-type: text/html";
if (mail($to, $subject, $message, $headers)) {
$resultMessage = '<div class="alert alert-success">Thank You. Your message has been sent</div>';
} else {
$resultMessage = '<div class="alert alert-danger">Sorry Please Try Again.</div>';
}
}
}
?>
<div class="container">
<h1>PinTribe</h1>
<p>Welcome <?php echo $_SESSION['loggedInUser']; ?></p>
</div>
<div class="top-content">
<div class="inner-bg">
<div class="container">
<div class="row">
<div class="col-sm-8 col-sm-offset-2 text">
</div>
</div>
<div class="row">
<div class="col-sm-6 col-sm-offset-3 form-box">
<div class="form-top">
<div class="form-top-left">
</div>
</div>
<div class="form-bottom">
<?php echo $resultMessage; ?>
<form role="form" action="dashboard.php" method="post" class="login-form" enctype="multipart/form-data">
<div class="form-group">
<label class="sr-only" for="item-name">Item Name</label>
<input type="text" name="item-name" placeholder="Item Name" class="username form-control" id="item-name">
</div>
<div class="form-group">
<textarea type="text" name="description" placeholder="Description" class="description form-control" id="description" rows="5"></textarea>
</div>
<div class="form-group">
<label class="sr-only" for="email">Email</label>
<input type="email" name="email" placeholder="Email.." class="email form-control" id="email">
</div>
</div>
您还可以使用var_dump查看当前值
希望有帮助。这行是错误的:如果邮件$to、$subject、$message、$headers{
删除邮件和拥抱。
尝试变量其他条件,如isset$var,而不是整个函数。您检查了服务器的错误日志吗?这里的Waaayyyy代码太多了。您需要进行更多的调试,并将其缩小到特定的代码部分。到目前为止,看起来您编写了一堆代码,没有测试它,现在希望我们为您修复它。为什么你认为问题在于提交或未填写字段?问题在于你的邮件功能。这是决定是否显示抱歉消息的地方。阿门@johncode:d你的表单中没有提交表单字段,或者你忘记粘贴代码的那部分。如果它不在表单中,那么你永远不会处理任何事情,因为您检查以开始处理的字段不存在。您好,它没有显示任何错误:/check for debugging why mail不发送电子邮件。我如何调用var_dump?一旦您这样做,请让我们知道outputboolfalse这是我得到的。提前感谢您
$to = "adamskhan123@gmail.com";
$subject ="New Contact";
$message ="<p>Item Name: $itemname.</p>
<p>Brand: $brandname.</p>
<p>Description: $description.</p>
<p>Availability: $availability.</p>
<p>Contact Person: $contact</p>
<p>Email: $email</p>
<p>Location: $location</p>
";
$headers ="Content-type: text/html";
if (mail($to, $subject, $message, $headers)) {
$resultMessage = '<div class="alert alert-success">Thank You. Your message has been sent</div>';
} else {
$resultMessage = '<div class="alert alert-danger">Sorry Please Try Again.</div>';
}
}
mail('adamskhan123@gmail.com','My Subject','Testing');