好的,所以我有一个PHP脚本,它是一个联系表单(如下所示)
$body = "From: $name\n E-Mail: $email\n Message:\n $message";
if ($_POST['submit']) {
if ($name != '' && $email != '') {
if ($human == '4') {
if (mail ($to, $subject, $body, $from)) {
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 != '4') {
echo '<p>You answered the anti-spam question incorrectly!</p>';
}
} else {
echo '<p>You need to fill in all required fields!</p>';
}
}
?>
我想知道(因为我在PHP方面不是很有经验)是否有办法让我回到div,如果有错误的联系表格? 提前致谢 编辑:HTML代码: http://pastebin.com/CwXsDapB
答案 0 :(得分:2)
是的,您可以将错误存储在会话中。
再次重定向到形式。
e.g。
$_SESSION['error'] = '<p>Something went wrong, go back and try again!</p>';
header("Location:YOUR_FORM.PHP?error#form_div");
向包含表单的div添加ID form_div
。
<div id="form_div">
<?php
if (! empty($_SESSION['error'])) {
echo $_SESSION['error'];
$_SESSION['error'] = '';
}
?>
<form>
...
答案 1 :(得分:0)
是的,您可以在错误时回复您的联系表格 您的联系表格是在同一页面还是另一页?
如果在同一页面上,那么我建议你使用Javascript或Jquery的验证,它将检查表单是否有值和值等于任何数字,然后成功时你可以提交表单。
以下链接可以帮助您进行验证,
http://www.tutorialspoint.com/cgi-bin/practice.cgi?file=javascript_43
如果您需要使用PHP并且在表单提交后进入不同的页面,您可以使用
来自PHP的头函数将其重定向到表单页面。
http://php.net/manual/en/function.header.php
此致 V
答案 2 :(得分:0)
由于您在同一页面处理表单(看到您有<form method="POST">
),因此不需要PHP会话。
将您的返回消息存储在$status
变量中,然后在表单和php页面如下所示之前将其显示为:
<?php
$body = "From: $name\n E-Mail: $email\n Message:\n $message";
if ($_POST['submit']) {
if ($name != '' && $email != '') {
if ($human == '4') {
if (mail ($to, $subject, $body, $from)) {
$status = '<p>Your message has been sent!</p>';
} else {
$status = '<p>Something went wrong, go back and try again!</p>';
}
} else if ($_POST['submit'] && $human != '4') {
$status = '<p>You answered the anti-spam question incorrectly!</p>';
}
} else {
$status = '<p>You need to fill in all required fields!</p>';
}
}
echo ($status) ? '<div id="status">'.$status.'</div>' : '';
?>
<form action="" method="POST">
<label>Name</label>
<br>
<input name="name" placeholder="Type Here">
</div>
<div>
<label>Email</label>
<br>
<input name="email" type="email" placeholder="Type Here">
</div>
<div>
<label>Message</label>
<br>
<textarea name="message" placeholder="Type Here"></textarea>
</div>
<div>
<label>*What is 2+2? (Spam protection)</label>
<br>
<input name="human" placeholder="Type Here">
</div>
<input id="submit" name="submit" type="submit" value="Submit">
</form>