在SESSION检查后无法登录

时间:2013-04-10 00:50:07

标签: php mysql session

我有访问者的网站页面,客户端的页面在/ 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?但它也没有用。

2 个答案:

答案 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");   
     }
?>