我是PHP的新手,我想知道如何在出错时处理重定向。
我有一个调用函数的脚本:
$cart_object->Go2Server();
$echo 'error';
现在,如果一切顺利,脚本会将用户重定向到另一个网址。但是,如果出现问题,页面会刷新,我会看到错误消息。即,函数返回。
我不确定如果函数返回,如何将用户重定向到其他位置。如果我有以下内容,则在没有错误时有时会调用redirect_to_error。
$cart_object->Go2Server();
redirect_to_error();
编辑 - 抱歉我应该补充一点,如果脚本在重定向后死掉,它怎么能返回一个值?
答案 0 :(得分:2)
header
功能可以解决这个问题
http://php.net/manual/en/function.header.php
示例:
header("Location: http://www.google.com");
exit;
您需要从函数返回一个bool值,并使用if语句检查该值,以便重定向到特定页面。
答案 1 :(得分:1)
在Go2Server函数中,考虑让它返回一个布尔变量,该变量指示标头是否已正确设置以重定向用户。也就是说,如果Go2Server工作,则返回true,否则返回false。
然后,如果布尔值为false,则运行redirect_to_error函数。要重定向某人,请使用标头功能。 e.g。
header('Location: www.example.com');
答案 2 :(得分:0)
重定向是否发生在$cart_object->Go2Server();
函数中?
如果是,那么重定向后会有exit()
或die()
吗?
在执行重定向时,脚本会继续运行,这就是您在重定向后始终需要结束脚本执行的原因。
答案 3 :(得分:0)
如果您为成功和失败的操作显示了HTTP标头,那将会很有帮助。
听起来您可能正在尝试发出HTTP重定向(即302响应代码)after the page output has started(此时无法更改标头)。如果您已正确设置错误报告,则应在日志中看到大量“标题已发送”。