2013-05-06 96 views
0

我创建了一个更新数据库的页面。在更新页面上的所有代码完成后(几秒钟后),我希望该页面自动将您发送回主页面(显示数据库信息的页面)。在php中重定向后我的页面完成其功能

我把header()函数中,但似乎在执行任何代码之前重定向。头是否使用正确的方法?在代码和短暂延迟之后是否有另一种重定向方法?

+0

向我们展示你的代码。所有你需要做的就是在更新之后和任何输出被发送到浏览器之前把标题调用。 – 2013-05-06 17:31:31

回答

0

是的,但做到这一点,你执行你的代码以后。

<?php 
function foo(){ 
    //do stuff here 

    header("Location: redirect.php"); 
    exit(); 
} 

确保你不输出任何东西你做重定向之前,否则它会显示一个错误headers already sent

+0

我实际上发现我可以放置文本输出,但重定向发生得如此之快以至于没有时间阅读该消息,但它至少在Firefox中似乎可以正常工作。感谢您的帮助!! – ForgottenOne 2013-05-06 22:19:06

0

是,header()将做的工作。只要把这个代码的数据库更新代码之后:

header('Location: ...'); 
exit; 

你为什么会增加重定向之前的任何延迟?

+0

,以便有时间看到弹出的任何错误消息。如果一切顺利,我有我的代码输出“数据库成功更新”,如果事情不顺利,就会出现错误。 – ForgottenOne 2013-05-06 22:09:01

+0

然后,HTTP重定向绝对不是您之后的解决方案:无论是元刷新还是JavaScript重定向,都可以完成这项工作。 – Benjamin 2013-05-06 23:29:20

0

执行PHP代码后,您应该可以使用header()重定向。确保您的header()调用在重定向之前要运行的代码之后。

0

是的,使用header()功能与Location: xxx,只需在您的代码完成活动后发送。还要注意,为了使header()生效,在调用header()之前不能实现真正的页面输出(尽管即使这可以通过使用输出缓冲来克服)。

0

头()是重定向正确的功能,但是header()函数只有在没有输出到页面的工作。

这将是很好,如果你可以在这里展示一些代码。

<?php 
header('Location: http://www.example.com/'); 
?> 
+0

对不起,我是一个新手编码器(学生),正在为一所教育机构工作(即时为一所大学作为学生雇员)。即时通讯应该小心我给第三方网站等的代码。但就像我说的那样,我是一个新手,所以我需要不时的帮助才能正常工作。顺便谢谢你的帮助! – ForgottenOne 2013-05-06 22:11:36