jus*_*inl 4 php error-handling get
我有一个用PHP编写的网站,任何时候用户收到错误我会将它们重定向到另一个页面(使用header(Location:...))并将错误ID放在URL中,以便我知道要显示哪个错误.
例如,如果用户尝试访问产品页面但该项目不再可用,我将重定向回他们之前查看的项目类别,并根据我在URL中指定的错误ID显示错误.
www.example.com/view_category.php?product_category_id=4&error_id=5
我不喜欢这种方法有两件事:
有没有办法从URL中干净地删除特定的$ _GET变量,同时在页面加载后保留其余变量不变?
我想也许它正在使用modRewrite或重定向回到页面本身,但是从URL中删除error_id或使用$ _SESSION变量并避免将error_id放入URL中.你的意见?
我真的从这个社区中学到了很多东西,并且想过如果我提出一个问题,我可能会学到一些新的东西或得到一些不同的想法,因为我对脚本很新.
不,没有办法明确地做到这一点 - 至少没有页面刷新但是你无论如何都会丢失数据.
你最好使用临时会话变量.
if ( /* error condition */ )
{
$_SESSION['last_error_id'] = 5;
header( 'Location: http://www.example.com/view_category.php?product_category_id=4' );
}
Run Code Online (Sandbox Code Playgroud)
然后,在view_category.php中
if ( isset( $_SESSION['last_error_id'] ) )
{
$errorId = $_SESSION['last_error_id'];
unset( $_SESSION['last_error_id'] );
// show error #5
}
Run Code Online (Sandbox Code Playgroud)