基本上,我正在检查用户是否已登录,如果没有,我将使用 header('location: login.php') 重定向到登录页面。
如果浏览器实际上是重定向还是服务器,我感到困惑?如果是浏览器,那么用户是否可以阻止浏览器重定向并查看页面内容?
基本上,我正在检查用户是否已登录,如果没有,我将使用 header('location: login.php') 重定向到登录页面。
如果浏览器实际上是重定向还是服务器,我感到困惑?如果是浏览器,那么用户是否可以阻止浏览器重定向并查看页面内容?
是的,重定向的不是浏览器,而是在将任何内容发送到浏览器之前的 php。
只需确保您在通话exit()
后使用,header
并且在通话之前没有任何内容输出到浏览器header
。
服务器正在重定向。客户端浏览器通过标头修改定向到服务器发送的页面。用户无法阻止来自页面的重定向,但能够在该行重定向代码 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");
如果“足够”,您的意思是信息不会暴露给未经身份验证的任何人,即使他们嗅探网络流量,那么您绝不能将信息发送到任何未经身份验证的请求的响应正文中.
这样的事情就足够了:
header('location: login.php');
exit; // make sure not to echo anything in the body
它将导致浏览器接收 HTTP 标头并开始对 login.php 的全新请求,同时不会在响应中显示任何敏感信息。
好吧,保持简单,检查特定变量并基于它,决定重定向/显示内容是可以的......这样的事情对你有用..
if(your condition){
header(Location: login.php)
exit() or die() ;
}else{
show contents.....}