2011-07-04 35 views
1

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

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

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

现在,如果一切顺利的话,该脚本将用户重定向到另一个URL。但是,如果出现问题,页面将刷新并显示错误消息。即,函数返回。

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

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

编辑 - 对不起,我要补充,如果脚本重定向后死亡,这怎么可以返回一个值?

回答

1

在您的Go2Server功能中,请考虑让它返回一个布尔变量,指示是否正确设置了标题以重定向用户。也就是说,如果Go2Server工作,返回true,否则返回false。

然后,如果布尔值为false,请运行redirect_to_error函数。要重定向某人,请使用标题功能。例如

header('Location: www.example.com');

0

是否在$cart_object->Go2Server();函数中发生了重定向?

如果是这样,在重定向后有exit()die()

脚本继续执行重定向时,这就是为什么您总是需要在重定向后结束脚本执行的原因。

+0

好吧,我明白了。因此,在积极的重定向之后使用die,否则让脚本返回并将它们重定向到错误页面? – ric

+1

重定向时,应该添加一个'die()'语句来防止脚本的进一步执行。 – PeeHaa

0

如果您为成功和失败的操作显示了HTTP标头,这将会很有帮助。

这听起来像你可能试图发出一个HTTP重定向(即302响应代码)after the page output has started(在这一点上的标题不能改变)。如果您的错误报告设置正确,您应该在日志中看到很多“标题已发送”。