PHP中的错误重定向

时间:2011-07-04 19:26:59

标签: php

我是PHP的新手,我想知道如何在出错时处理重定向。

我有一个调用函数的脚本:

  $cart_object->Go2Server();
  $echo 'error';

现在,如果一切顺利,脚本会将用户重定向到另一个网址。但是,如果出现问题,页面会刷新,我会看到错误消息。即,函数返回。

我不确定如果函数返回,如何将用户重定向到其他位置。如果我有以下内容,则在没有错误时有时会调用redirect_to_error。

$cart_object->Go2Server();
redirect_to_error();

编辑 - 抱歉我应该补充一点,如果脚本在重定向后死掉,它怎么能返回一个值?

4 个答案:

答案 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(此时无法更改标头)。如果您已正确设置错误报告,则应在日志中看到大量“标题已发送”。