PHP会员登录,和判断用户权限,登录超时踢除用户

php100视频里的一个会员登录系统实例,虽然很小,但里面的一些基本功能实现还是不错的,
分为三个文件,如下:
config.php

<?php
session_start();

 $conn=mysql_connect('localhost','root','a123456') or die("连接错误");
 mysql_select_db("xuexi",$conn) or die("数据库错误");
 mysql_query("set names'utf8'");
 define(ALL_PS,"ljzhen");//为ljzhen在做加密,保证用户的安全性。

  function user_shell($uid,$shell,$yid){   //这里定义了变量
  $sql="select * from login_user where `uid`='$uid'";
  $query=mysql_query($sql);
  $us=is_array($row=mysql_fetch_array($query));
  $shell=$us ? $shell=md5($row[username].$row[userpass].ALL_PS) :FALSE;
  if($shell){
   if($row[yid]<=$yid){   //判断用户权限,条件满足时,即可访问该页面
    return $row;
   }else{
    echo "你的权限不足,无法访问该那面";
    echo "<a href="login.php" mce_href="login.php">返回【查看权限】重新登陆</a>";
    exit();
   }

  }else{
   echo "你无权限访问该页面!";
   echo "<a href="login.php" mce_href="login.php">返回重新登陆</a>";
   exit();
  }
 }


 function user_mktime($onlinetime){
  $new_time=mktime();
  echo $new_time-$onlinetime;  //当前时间减去用户登陆时间
  if($new_time-$onlinetime>'100'){   //判断登陆时间超过我们制定时间后,自动踢出!
   echo "登陆超时";
   session_destroy();//清除session中的值
   exit();
  }else{
   $_SESSION[times]=mktime();  //及时更新时间,即用户有操作页面时,重新计算时间
  }
 }
?>

login.php

<?php
 include("config.php");
@header("content-type:text/html; charset=UTF-8");
//
//echo md5("admin".ALL_PS);//采用admin和前面的LJZHEN同时加密
if($_POST[submit]){
 $username=str_replace(" ","",$_POST[username]);
 $sql="select * from login_user where `username`='$username'";
 $query=mysql_query($sql);
 $us=is_array($row=mysql_fetch_array($query));//这里判断用户名是否为真
 $ps= $us ? md5($_POST[password].ALL_PS)==$row[userpass] : FALSE;//这里判断用户名和密码是否为真
 if($ps){   //这里对$ps进行判断
  $_SESSION[uid]=$row[uid];  //获取ID存入SESSION
  $_SESSION[user_shell]=md5($row[username].$row[userpass].ALL_PS);  //这里在对用户和密码进一层加密
  $_SESSION[times]=mktime();
  echo "<a href="login_sys.php" mce_href="login_sys.php">登陆成功,点击【进入】操作</a>";
 }else{
  echo "用户名或密码错误!";
  session_destroy();
 }


}
?>
<?php
//echo $_SESSION[uid];
//echo $_SESSION[uname];
?>
  <form action="" method="post"">
 用户:  <input type="text" name="username" size="40" maxlength="40"/>
  <br/>
    密码:  <input type="text" name="password" size="40" maxlength="40"/>
  <br/>

  <input type="submit" name="submit" value="登陆" style="width:50px; height:25px;"/>
  </form>

login_sys.php

<?php
include("config.php");
@header("content-type:text/html; charset=UTF-8");
 //$_SESSION[uid];
 //$_SESSION[user_shell];

 $arr=user_shell($_SESSION[uid],$_SESSION[user_shell],1);  //获取登陆用户信息--2是表示用户的权限设置的
 //echo $arr[username]."<br>";

 user_mktime($_SESSION[times]);   //使用user_mktime类方法

 if($_GET[out]){  //注销当前用户
 unset($_SESSION[uid]);
 unset($_SESSION[user_shell]);
 echo"<mce:script type="text/javascript"><!--
location.href='login_sys.php'
// --></mce:script>";//刷新当前页面
 }
 echo "<a href="login_sys.php?out=out" mce_href="login_sys.php?out=out">退出</a>";
?>

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值