Php 在Post/Redirect/Get场景中,heredoc干扰header()
我在addToDb.php中有一个herdoc表单(如下所示)。当用户单击表单上的提交按钮(下表中的“添加记录”按钮)时,表单将发回addToDb.php 在验证表单上的数据是否正确后,我将数据添加到数据库中,并使用header()进行303重定向(这是我第一次尝试使用post/redirect/get) 我得到一个错误: “警告:无法修改标题信息-标题已由C:\xampp\htdocs\foo\addToDb.php:165在C:\xampp\htdocs\foo\addToDb.php的第129行和C:\xampp\htdocs\foo\addToDb.php的第130行发送” (注意:上面对header的两个调用出现在addToDb.php的第129行和第130行) 下面是发生的情况:Php 在Post/Redirect/Get场景中,heredoc干扰header(),php,heredoc,post-redirect-get,Php,Heredoc,Post Redirect Get,我在addToDb.php中有一个herdoc表单(如下所示)。当用户单击表单上的提交按钮(下表中的“添加记录”按钮)时,表单将发回addToDb.php 在验证表单上的数据是否正确后,我将数据添加到数据库中,并使用header()进行303重定向(这是我第一次尝试使用post/redirect/get) 我得到一个错误: “警告:无法修改标题信息-标题已由C:\xampp\htdocs\foo\addToDb.php:165在C:\xampp\htdocs\foo\addToDb.php的第1
- 我用有效数据填写表格
- 按“添加记录”
- 然后,当我重新输入addToDb.php时,表单将重新显示
- 我的记录已成功添加到数据库,但是
- 我在浏览器中没有看到index.php,我仍然看到addToDb.php
- 我得到的错误信息如上所述,并在下面重复:
那么--herdeoc是否以某种方式干扰了我的PRG?头必须首先发送到客户端。只要在发送http头之前不向客户端发送任何数据(即使用echo或将普通html放在php标记之外),就可以先在代码中执行任何操作(即测试post/get变量)。邮件头发送后,您当然可以做任何您喜欢的事情 因此,您得到了错误:
Cannot modify header information - headers already sent by...
由于您没有在文档开头提供标题,因此在文档开头会自动提供标题。我没有。谢谢当我删除了所有调试echo和所有其他输出后,重定向就可以很好地工作到index.php。我甚至不得不删除一个var_dump()调用。
// check for valid form data and add to the database, then redirect now.........
header("HTTP/1.1 303 See Other");
header("Location: http://localhost/foo/index.php");
exit();
Cannot modify header information - headers already sent by...