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 相关文章推荐
社区(php&amp;&amp;mysql)二
Oct 09 PHP
WHOIS类的修改版
Oct 09 PHP
学习使用curl采集curl使用方法
Jan 11 PHP
探寻PHP脚本不报错的原因
Jun 12 PHP
PHP获取当前完整URL地址的函数
Dec 21 PHP
PHP 实现代码复用的一个方法 traits新特性
Feb 22 PHP
PHP防盗链的基本思想 防盗链的设置方法
Sep 25 PHP
Linux服务器下PHPMailer发送邮件失败的问题解决
Mar 04 PHP
php创建图像具体步骤
Mar 13 PHP
PHP验证类的封装与使用方法详解
Jan 10 PHP
PHP随机生成中文段落示例【测试网站内容时使用】
Apr 26 PHP
php7 参数、整形及字符串处理机制修改实例分析
May 25 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操作excel文件 基于phpexcel
2010/07/02 PHP
php inc文件使用的风险和注意事项
2013/11/12 PHP
Zend Framework教程之Zend_Db_Table表关联实例详解
2016/03/23 PHP
php魔法函数与魔法常量使用介绍
2017/07/23 PHP
如何在Laravel之外使用illuminate组件详解
2020/09/20 PHP
模仿JQuery sortable效果 代码有错但值得看看
2009/11/05 Javascript
JavaScript中String和StringBuffer的速度之争
2010/04/01 Javascript
JavaScript语言核心数据类型和变量使用介绍
2013/08/23 Javascript
如何设置iframe高度自适应在跨域情况下的可用方法
2013/09/06 Javascript
浅析javascript中function 的 length 属性
2014/05/27 Javascript
javascript刷新父页面的各种方法汇总
2014/09/03 Javascript
jQuery实现表单步骤流程导航代码分享
2015/08/28 Javascript
JavaScript实现正则去除a标签并保留内容的方法【测试可用】
2018/07/18 Javascript
微信小程序实现日历功能
2018/11/27 Javascript
uni-app实现点赞评论功能
2019/11/25 Javascript
vue项目中使用bpmn-自定义platter的示例代码
2020/05/11 Javascript
[02:54]辉夜杯主赛事第二日败者组 iG.V赛后采访
2015/12/26 DOTA
[49:12]完美世界DOTA2联赛PWL S2 Magma vs GXR 第二场 11.29
2020/12/02 DOTA
深入解析Python中的urllib2模块
2015/11/13 Python
python 读取鼠标点击坐标的实例
2018/12/29 Python
python 用for循环实现1~n求和的实例
2019/02/01 Python
Python 编程速成(推荐)
2019/04/15 Python
Python将string转换到float的实例方法
2019/07/29 Python
python中的反斜杠问题深入讲解
2019/08/12 Python
python批量处理文件或文件夹
2020/07/28 Python
浅谈matplotlib.pyplot与axes的关系
2020/03/06 Python
Python numpy大矩阵运算内存不足如何解决
2020/11/19 Python
美国最大的宠物药店:1-800-PetMeds
2016/10/02 全球购物
埃弗顿足球俱乐部官方网上商店:Everton Direct
2018/01/13 全球购物
大学军训感言800字
2014/02/27 职场文书
班干部竞选演讲稿
2014/04/24 职场文书
大学生应聘求职信
2014/05/26 职场文书
初级党校心得体会
2014/09/11 职场文书
2014年小学少先队工作总结
2014/12/18 职场文书
基于Redis6.2.6版本部署Redis Cluster集群的问题
2022/04/01 Redis
vue实现可以快进后退的跑马灯组件
2022/04/08 Vue.js