PHP转到部分

时间:2015-01-02 11:40:25

标签: 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)) { 
        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

3 个答案:

答案 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>