0

基本上,我正在检查用户是否已登录,如果没有,我将使用 header('location: login.php') 重定向到登录页面。

如果浏览器实际上是重定向还是服务器,我感到困惑?如果是浏览器,那么用户是否可以阻止浏览器重定向并查看页面内容?

4

4 回答 4

0

是的,重定向的不是浏览器,而是在将任何内容发送到浏览器之前的 php。

只需确保您在通话exit()后使用,header并且在通话之前没有任何内容输出到浏览器header

于 2013-02-20T02:36:17.827 回答
0

服务器正在重定向。客户端浏览器通过标头修改定向到服务器发送的页面。用户无法阻止来自页面的重定向,但能够在该行重定向代码 header('location: login.php'); 之后看到内容

// print to error log before and after header redirect to show code is executed after the redirect
error_log("before redirect");
header('location: login.php');

// this will get get executed.  To prevent, exit() script immediately after the header redirect
error_log("after redirect");
于 2013-02-20T02:36:54.760 回答
0

如果“足够”,您的意思是信息不会暴露给未经身份验证的任何人,即使他们嗅探网络流量,那么您绝不能将信息发送到任何未经身份验证的请求的响应正文中.

这样的事情就足够了:

header('location: login.php');
exit; // make sure not to echo anything in the body

它将导致浏览器接收 HTTP 标头并开始对 login.php 的全新请求,同时不会在响应中显示任何敏感信息。

于 2013-02-20T02:37:07.393 回答
0

好吧,保持简单,检查特定变量并基于它,决定重定向/显示内容是可以的......这样的事情对你有用..

if(your condition){
header(Location: login.php)
exit() or die() ;
}else{
show contents.....}
于 2013-02-20T02:38:03.133 回答