通过服务器端include提交表单后强制重定向


Force redirect after form is submitted through a server side include

我试图使PHP联系人表单是在服务器端包含在另一个页面重定向到感谢页面时提交。

表单在page页面中作为include,如下所示:

<div id="formArea">
<?php include 'form.php'; ?>
</div>

,当前重定向设置为:

header("Location: thankyou.php");

表单工作正常,邮件将进入我的收件箱。还需要注意的是,当form。php页面被打开时,它实际上是重定向到thanku。php

你知道我怎样才能完成这个任务吗?

谢谢

您试图在报头已经发送(因为您已经开始输出HTML)之后设置HTTP报头,因此重定向报头Location从未与请求一起发送到服务器。

服务器端解决方案

必须在任何输出之前调用header()函数

客户端解决方案

如果你仍然坚持做重定向在form.php你可以做一个JavaScript(客户端)重定向:

<script type="text/javascript">window.location = "someurl.php";</script>

调试

我还建议您在开发应用程序时启用警告和错误(但请记住在生产中禁用!),因为您的代码应该产生headers_sent警告。

ini_set( 'display_errors', 'on' );
error_reporting( E_ALL );