PHP+MYSQL会员系统的登陆即权限判断实现代码


Posted in PHP onSeptember 23, 2011
<?php 
error_reporting(0); 
session_start(); 
//数据库连接 
$conn = mysql_connect('localhost', 'root', ''); 
mysql_select_db('chenkun', $conn); 
mysql_query('SET NAMES UTF-8'); 
//定义常量 
define('ALL_PS', 'PHP'); 
function user_shell($uid, $shell, $m_id) { 
$sql = "select * from admin where uid='$uid'"; 
$query = mysql_query($sql); 
$row = mysql_fetch_array($query); 
$shell = is_array($row) ? $shell == md5($row['username'] . $row['password'] . ALL_PS) : FALSE; 
if ($shell) { 
if ($row['m_id'] <= $m_id) { 
return $row; 
} 
echo "你的权限不足"; 
exit (); 
} else { 
echo "你无权限访问该页"; 
exit (); 
} 
} 
function user_mktime($onlinetime) { 
$new_time = mktime(); 
if (($new_time - $onlinetime) > '900') { 
session_destroy(); 
echo "登陆超时"; 
exit (); 
} else { 
$_SESSION['times'] = mktime(); 
} 
} 
?>

PHP+MYSQL会员系统的登陆即权限判断
包含三个页面,cogfig页面是被包含页面。denglu页面负责提交,session赋值等,denglu_link页面负责权限判断的演示。
本例事先已存在test数据库,user_list表,表中有uid,m_id,username,password四个字段。并且password字段已经经过md5加密,形式是:md5("用户密码".ALL_PS),即用户输入的密码加常量进行加密。
config.php页面:
<?php 
//启动session 
session_start(); 
//数据库连接 
$conn=mysql_connect('localhost','root','******'); 
mysql_select_db('test',$conn); 
//定义常量 
define("ALL_PS","php100"); 
//判断权限函数 
function user_shell($uid,$shell){ 
$sql="SELECT * FROM `user_list` WHERE `uid` = '$uid'"; 
$query=mysql_query($sql); 
$exist=is_array($row=mysql_fetch_array($query)); 
$exist2=$exist?$shell==md5($row['username'].$row['password'].ALL_PS):FALSE; 
if($exist2){ 
return $row; 
}else{ 
echo "你无权限访问该页"; 
exit(); 
} 
} 
?>

denglu.php页面:
<? 
include("config.php"); 
if($_POST['submit']){ 
$username=str_replace(" ","",$_POST['username']); //去除空格 
$sql="SELECT * FROM `user_list` WHERE `username` = '$username'"; 
$query=mysql_query($sql); 
$exist=is_array($row=mysql_fetch_array($query)); //判断是否存在这样一个用户 
$exist2=$exist?md5($_POST['password'].ALL_PS)==$row['password']:FALSE;//判断密码 
if($exist2){ 
$_SESSION['uid']=$row['uid']; // session赋值 
$_SESSION['user_shell']=md5($row['username'].$row['password'].ALL_PS); 
echo "登陆成功"; 
}else{ 
echo "不正确的用户名"; 
SESSION_DESTROY(); 
} 
} 
?> 
<form action="" method="post"> 
用户名:<input type="text" name="username" /><br> 
密码:<input type="password" name="password"/><br> 
验证码:<input type="code" name="code" size="10"/> 
<img src="imgcode.php"><br><br> 
<input type="submit" name="submit" value="登陆"/> 
</form> 
<a href="http://127.0.0.1/test/denglu_link.php">denglu_link</a>

denglu_link.php页面:
<? 
include("config.php"); 
$arr=user_shell($_SESSION['uid'],$_SESSION['user_shell']);//以上两句即可对权限进行判断 
echo $arr['username']; 
?> 
权限内容

PHP 相关文章推荐
java EJB 加密与解密原理的一个例子
Jan 11 PHP
一个PHP分页类的代码
May 18 PHP
php记录代码执行时间(实现代码)
Jul 05 PHP
php获取字段名示例分享
Mar 03 PHP
PHP函数getenv简介和使用实例
May 12 PHP
Yii框架登录流程分析
Dec 03 PHP
PHP的全局错误处理详解
Apr 25 PHP
CI框架的安全性分析
May 18 PHP
PHP精确计算功能示例
Nov 29 PHP
php实现留言板功能
Mar 05 PHP
php实现数组纵向转横向并过滤重复值的方法分析
May 29 PHP
Laravel接收前端ajax传来的数据的实例代码
Jul 20 PHP
PHP将DateTime对象转化为友好时间显示的实现代码
Sep 20 #PHP
php方法调用模式与函数调用模式简例
Sep 20 #PHP
php若干单维数组遍历方法的比较
Sep 20 #PHP
PHP学习笔记 用户注册模块用户类以及验证码类
Sep 20 #PHP
PHP无刷新上传文件实现代码
Sep 19 #PHP
PHP通过正则表达式下载图片到本地的实现代码
Sep 19 #PHP
PHP下利用shell后台运行PHP脚本,并获取该脚本的Process ID的代码
Sep 19 #PHP
You might like
php.ini save_handler 修改不生效的解决办法
2014/07/22 PHP
php array_keys 返回数组的键名
2016/10/25 PHP
php微信开发之百度天气预报
2016/11/18 PHP
通过修改referer下载文件的方法
2008/05/11 Javascript
一些常用的JS功能函数代码
2009/06/23 Javascript
zeroclipboard复制到剪切板的flash
2010/08/04 Javascript
让textarea自动调整大小的js代码
2011/04/12 Javascript
js跨浏览器实现将字符串转化为xml对象的方法
2013/09/25 Javascript
Jquery遍历节点的方法小集
2014/01/22 Javascript
Javascript 多物体运动的实现
2014/12/24 Javascript
JavaScript驾驭网页-DOM
2016/03/24 Javascript
基于JavaScript实现单选框下拉菜单添加文件效果
2016/06/26 Javascript
js精准的倒计时函数分享
2016/06/29 Javascript
Node.js测试中的Mock文件系统详解
2016/11/21 Javascript
微信小程序使用toast消息对话框提示用户忘记输入用户名或密码功能【附源码下载】
2017/12/09 Javascript
JS排序算法之冒泡排序,选择排序与插入排序实例分析
2017/12/13 Javascript
vue项目中使用百度地图的方法
2018/06/08 Javascript
Angular设置别名alias的方法
2018/11/08 Javascript
node链接mongodb数据库的方法详解【阿里云服务器环境ubuntu】
2019/03/07 Javascript
vue中typescript装饰器的使用方法超实用教程
2019/06/17 Javascript
vue子传父关于.sync与$emit的实现
2019/11/05 Javascript
Node.js实现批量下载图片简单操作示例
2020/01/18 Javascript
Python批量重命名同一文件夹下文件的方法
2015/05/25 Python
django admin 后台实现三级联动的示例代码
2018/06/22 Python
对python中的six.moves模块的下载函数urlretrieve详解
2018/12/19 Python
python ---lambda匿名函数介绍
2019/03/13 Python
与Django结合利用模型对上传图片预测的实例详解
2019/08/07 Python
selenium 多窗口切换的实现(windows)
2020/01/18 Python
tensorflow mnist 数据加载实现并画图效果
2020/02/05 Python
Ted Baker美国官网:英国时尚品牌
2018/10/29 全球购物
西安当代医院管理研究院笔试题
2015/12/11 面试题
企业消防安全制度
2014/02/02 职场文书
技校学生个人职业生涯规划范文
2014/03/03 职场文书
廉洁自律承诺书
2014/03/27 职场文书
selenium.webdriver中add_argument方法常用参数表
2021/04/08 Python
JVM之方法返回地址详解
2022/02/28 Java/Android