HTML表单+ PHP,页面重定向

时间:2012-03-06 03:28:26

标签: php forms html5

我有一个HTML5表单设置如下:

<form id="contact-form" action="php/email.php">
            <fieldset>
                <ul id="form">
                    <li>
                        <label for="name">Name:</label>
                        <input id="name" name="name" type="text" placeholder="First and Last Name" required />
                    </li>
                    <li>
                        <label for="email">Email:</label>
                        <input id="email" name="email" type="email" placeholder="Enter email address" />
                    </li>
                    <li>
                        <label for="message">Message:</label>
                        <textarea id="message" name="message" placeholder="Leave comments here..." required></textarea>
                    </li>
                </ul>

                <a id="back" href="index.html"><-- Home</a>
                <input type="submit" id="submit" value="Submit Form" class="button"/>
            </fieldset>
        </form>

和一个给我发电子邮件的小脚本。我想知道如何将用户重定向到Thank You页面。有什么建议吗?

对不起,这是PHP脚本:

<?php

$name = $_GET['name'];
$visitorEmail = $_GET['email'];
$message = $_GET['message'];
$email_from = "lesniakbj@jay.washjeff.edu";
$email_subject = "New Form Submission! - From: " + $visitorEmail;
$email_body = "Here is the message from $name: \n $message";    
$to = "lesniakbj@jay.washjeff.edu";
$headers = "From: $email_from \r \n";
$headers .= "Reply-To: $visitorEmail \r \n";    

mail($to, $email_subject, $email_body, $headers);

echo "Success! You've sent mail!";

?>

编辑:

好的,我对此有这个问题:

~/MyMobileApp/php/email.php

以及我的所有内容:

~/MyMobileApp/

我想重定向回本地页面,我的索引页面位于我的php脚本上方的一个文件夹中。标题的问题是它不能超出它当前所在的目录;也许我应该在该文件夹中添加一个感谢html页面并重定向?或者有更好的方法吗?

3 个答案:

答案 0 :(得分:3)

在你发送电子邮件后,添加这个php片段:

header("HTTP/1.1 303 See Other");
header("Location: /thank-you.php");
exit();

答案 1 :(得分:1)

在php脚本中,您可以像这样设置HTTP重定向标头:

header('Location: thanks.php');

但有几点需要注意:

  1. 您可以在header语句之前不输出任何输出。由于这是一个HTTP 标题,因此打印内容将结束标题并开始正文。
  2. 这在AJAX脚本中不起作用,因为您将重定向从未在浏览器中呈现的页面。如果您使用AJAX,则可以将window.location.href设置为要重定向到的页面。

答案 2 :(得分:0)

使用php,重定向很容易。完成小脚本的逻辑后,使用header()函数。

header('Location: http://www.yourlocation.com/there/myfile.html');

这会发送一个重定向标头,导致目标网页加载。您可以定位任何地址。但是,脚本将继续执行,因此不要假设这样就结束了。此后的任何代码都将运行。此外,必须在任何输出之前发送标头,因此没有HTML并确保在脚本打开<?之前不回显任何内容或有任何空格。否则你会收到错误。

手册中还有更多关于header()的信息。