权限系统的具体实现

出于安全的考虑,网站将用户的登陆信息以session的形式存储于服务器端,即在登陆成功时设置索引为用户名username的session,当用户登出时注销此session。
在客户端则以cookie的形式存储用户名,当需要完成某项操作时,用户端需提交此cookie,服务器根据用户名检索session以判断用户是否登录。
相关代码如下:
登陆:
if($_POST['submit']){    
    if($row['username']==$username &&$row['password']==$password){
        setcookie('uname',$username,time()+7200);
        session_start();
        $_SESSION[$username]=1;
        echo "<script>alert('successfully');window.location.href= 'index.php';</script>";
    }
    else echo "<script>alert('failed');history.go(-1)</script>";//返回之前的页面
}
登出:
<?php 
$flag=0;
if(isset($_GET["out"])){
   if($_GET["out"])
   setcookie('uname','',time()-1);
   if(isset($_SESSION[$_COOKIE['uname']])){
   unset($_SESSION[$_COOKIE['uname']]);
}
  $flag=1;//防止服务器接收到getout操作时已经认为该用户有cookie,然后下面的COOKIE[NAME]已经有了,服务器返回给他的才是空的
    }
 }
  if($flag!=1){
  $link=mysqli_connect('localhost','users','666','users');
  if(isset($_SESSION[$_COOKIE['uname']])){
  $name=$_COOKIE['uname'];
  $query=mysqli_query($link,"SELECT username FROM users WHERE username = '$name'");
  $row=mysqli_num_rows($query);
  if($row==1){
  echo '<i class="fa fa-user"></i> '.$name.'<a href="index.php?out=1">退出</a>';
      }
   }else{ 
  echo '<a href="login.php"><i class="fa fa-user"></i><span>登录/注册</span></a>';
							}
}
  else{ 
  echo '<a href="login.php"><i class="fa fa-user"></i><span>登录/注册</span></a>';
}
?>



  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值