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边学边教》(02.Apache+PHP环境配置――上篇)
Dec 13 PHP
php IP及IP段进行访问限制的代码
Dec 17 PHP
使用php+Ajax实现唯一校验实现代码[简单应用]
Nov 29 PHP
PHP的博客ping服务代码
Feb 04 PHP
PHP中CURL方法curl_setopt()函数的参数分享
Jan 19 PHP
使用 PHPStorm 开发 Laravel
Mar 24 PHP
php中使用base HTTP验证的方法
Apr 20 PHP
php线性表的入栈与出栈实例分析
Jun 12 PHP
ThinkPHP控制器详解
Jul 27 PHP
PHP异常处理定义与使用方法分析
Jul 25 PHP
PHPExcel 修改已存在Excel的方法
May 03 PHP
Laravel 自动转换长整型雪花 ID 为字符串的实现
Oct 27 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
IIS6的PHP最佳配置方法
2007/03/19 PHP
PHP中创建空文件的代码[file_put_contents vs touch]
2012/01/20 PHP
php线性表顺序存储实现代码(增删查改)
2012/02/16 PHP
分享一下贝贝成长进度的php代码
2012/09/14 PHP
PHP日期函数date格式化UNIX时间的方法
2015/03/19 PHP
PHP实现模拟http请求的方法分析
2017/12/20 PHP
JavaScript动态创建link标签到head里的方法
2014/12/22 Javascript
JavaScript模块化开发之SeaJS
2015/12/13 Javascript
深入学习JavaScript的AngularJS框架中指令的使用方法
2016/03/05 Javascript
Vue.js一个文件对应一个组件实践
2016/10/27 Javascript
jQuery实现表格与ckeckbox的全选与单选功能
2016/11/24 Javascript
JS判断输入的字符串是否是数字的方法(正则表达式)
2016/11/29 Javascript
jquery实现倒计时小应用
2017/09/19 jQuery
深入浅析js原型链和vue构造函数
2018/10/25 Javascript
JointJS JavaScript流程图绘制框架解析
2019/08/15 Javascript
[10:04]国际邀请赛采访专栏:DK.Farseer,mouz.Black^,采访员Josh专访
2013/08/05 DOTA
[01:53]DOTA2超级联赛专访Zhou 五年职业青春成长
2013/05/29 DOTA
解析Python中的变量、引用、拷贝和作用域的问题
2015/04/07 Python
Python发送以整个文件夹的内容为附件的邮件的教程
2015/05/06 Python
opencv python 傅里叶变换的使用
2018/07/21 Python
python tkinter canvas使用实例
2019/11/04 Python
python实现高斯(Gauss)迭代法的例子
2019/11/20 Python
关于Tensorflow 模型持久化详解
2020/02/12 Python
pytorch进行上采样的种类实例
2020/02/18 Python
python程序文件扩展名知识点详解
2020/02/27 Python
Python读取Excel数据并生成图表过程解析
2020/06/18 Python
欧洲最大的预定车位市场:JustPark
2020/01/06 全球购物
Net Remoting把服务器端激活两种模式
2014/01/22 面试题
什么是网络协议
2016/04/07 面试题
C#面试问题
2016/07/29 面试题
销售人员求职的自我评价分享
2014/03/15 职场文书
大专学生求职信
2014/07/04 职场文书
厨师长岗位职责范本
2014/08/25 职场文书
反四风问题学习心得体会
2016/01/22 职场文书
浅谈python中的多态
2021/06/15 Python
python pygame 开发五子棋双人对弈
2022/05/02 Python