我已经创建了一个网站,我没有在php中工作的业务。网站已启动并运行,但表单不能正常工作。现在,它提交到我的sform.php文件,但只显示一个空白页面,而不是提交到$to部分的电子邮件(出于隐私原因,我用redacted@redacted.com替换了它)。这是表单代码和php。我相信你们都会马上知道问题的症结所在。很抱歉我的无知。
表格:
<form class="form-horizontal" role="form" method="post" action="sform.php">
<div class="form-group">
<label for="name" class="col-lg-4 control-label"></label>
<div class="col-lg-10">
<input type="name" class="form-control" id="name" placeholder="Your Name">
</div>
</div>
<div class="form-group">
<label for="email" class="col-lg-4 control-label"></label>
<div class="col-lg-10">
<input type="email" class="form-control" id="email" placeholder="Email">
</div>
</div>
<div class="form-group">
<label for="phone" class="col-lg-4 control-label"></label>
<div class="col-lg-10">
<input type="phone" class="form-control" id="phone" placeholder="Phone">
</div>
</div>
<div class="form-group">
<label for="company" class="col-lg-4 control-label"></label>
<div class="col-lg-10">
<input type="company" class="form-control" id="company" placeholder="Company Name">
</div>
</div>
<div class="form-group">
<label for="message" class="col-lg-4 control-label"></label>
<div class="col-lg-10">
<textarea rows="3" class="form-control" id="message" placeholder="What can we do for you?"></textarea>
</div>
</div>
<div class="form-group">
<div class="col-lg-10">
<button type="submit" class="btn btn-success"><span class="glyphicon glyphicon-ok-sign"></span> Submit</button>
</div>
</div>
</form><!-- form -->=========================================================
PHP:
<?php
if (isset($_POST["submit"])) {
$name = $_POST['name'];
$email = $_POST['email'];
$message = $_POST['comments'];
$human = intval($_POST['human']);
$from = 'redacted';
$to = 'redacted@redacted.com';
$subject = 'redacted ';
$body = "From: $name\n E-Mail: $email\n Comments: $comments\n";
// Check if name has been entered
if (!$_POST['name']) {
$errName = 'Please enter your name';
}
// Check if email has been entered and is valid
if (!$_POST['email'] || !filter_var($_POST['email'], FILTER_VALIDATE_EMAIL)) {
$errEmail = 'Please enter a valid email address';
}
//Check if message has been entered
if (!$_POST['comments']) {
$errMessage = 'Please enter your message';
}
//Check if simple anti-bot test is correct
if ($human !== 5) {
$errHuman = 'Your anti-spam is incorrect';
}
// If there are no errors, send the email
if (!$errName && !$errEmail && !$errMessage && !$errHuman) {
if (mail ($to, $subject, $body, $from)) {
$result='<div class="alert alert-success">Thank You! We will be in contact with you shortly.</div>';
} else {
$result='<div class="alert alert-danger">Sorry there was an error sending your message. Please try again.</div>';
}
}
}
?>==================================================================
再次感谢你的帮助!
发布于 2017-04-04 21:33:26
我认为您在文本框中遗漏了name属性。你的代码:
<input type="name" class="form-control" id="name" placeholder="Your Name">试试这个:
<input type="text" class="form-control" id="name" name="name" placeholder="Your Name">并且在所有输入字段中添加name="something“。
发布于 2017-04-04 21:33:09
只有在未设置POST值的情况下才会设置$err*变量,但无论如何都要对它们进行测试。如果设置了POST值,它们就不存在。通过稍微改变一些东西,你可能会这样做:
if (!$_POST['comments']) {
$errMessage = 'Please enter your message';
} else {
$errMessage = false;
$comments = $_POST['comments'];
}这可能不是最好的方法,但你可能可以让它工作,然后随着你的技能进步而改进它。
https://stackoverflow.com/questions/43208672
复制相似问题