我有访问者的网站页面,客户端的页面在/ admin
上进行管理我在admin / index.php创建了一个登录系统,它运行正常。但是,如果我在浏览器中输入管理页面的URL(例如admin / carro_admin.php),即使没有被提及也可以访问。所以我试图在这个页面(carro_admin)上进行一些会话检查以阻止访问者并允许登录访问。
我试着这样做:
if (isset($_SESSION)) {
header("location:carro_admin.php");
}
else {
header("location:index.php");
}
exit();
它阻止访问并将我发送到index.php(这是正确的)。但是现在登录系统不起作用。当我输入我的用户名和密码时,我再次被重定向到index.php。
我的会话代码有问题吗?
Ps。:我已经读过这个问题:How to set and check a session after login?但它也没有用。
答案 0 :(得分:1)
您的重定向页面顶部是否有session_start()?如果没有,它将不会设置会话。我可以从非浏览器点击该页面,并获取管理页面的所有内容,而不会被重定向。在用户未登录的情况下,您需要在重定向之后使脚本死亡。此外,您不应使用isset($ _SESSION)。你应该使用@ $ _ SESSION [“loggedIn”] === TRUE。
答案 1 :(得分:1)
将此添加到登录过程,即输入用户名/密码并单击提交按钮。
<?php session_start();
/*authenticate the username &^ password*/
if($result) {
$_SESSION['logged_in']=1;
}
?>
现在在管理页面上
<?php session_start();
if(isset($_SESSION['logged_in'])) {
header("location:carro_admin.php");
} else {
header("location:index.php");
}
?>