0

我有访问者的网站页面和客户的页面在 /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.:我已经读过这个问题:登录后如何设置和检查会话?但它也没有用。

4

2 回答 2

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");   
     }
?>
于 2013-04-10T01:09:56.770 回答
1

您的重定向所在页面的顶部是否有 session_start ()?如果没有,它不会设置会话。我可以从非浏览器中访问该页面,并在不重定向的情况下获取您管理页面的所有内容。在用户未登录的情况下,您需要在重定向后终止脚本。此外,您不应使用 isset ($_SESSION)。您应该使用 @$_SESSION["loggedIn"] === TRUE 之类的东西。

于 2013-04-10T00:57:28.737 回答