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 相关文章推荐
echo, print, printf 和 sprintf 区别
Dec 06 PHP
php 代码优化的42条建议 推荐
Sep 25 PHP
PHP操作文件类的函数代码(文件和文件夹创建,复制,移动和删除)
Nov 10 PHP
PHP 获取文件路径(灵活应用__FILE__)
Feb 15 PHP
ubuntu12.04使用c编写php扩展模块教程分享
Dec 25 PHP
PHP函数http_build_query使用详解
Aug 20 PHP
在WordPress中实现发送http请求的相关函数解析
Dec 29 PHP
PHP 返回13位时间戳的实现代码
May 13 PHP
php+mysql查询实现无限下级分类树输出示例
Oct 03 PHP
thinkPHP数据库增删改查操作方法实例详解
Dec 06 PHP
PHP里面把16进制的图片数据显示在html的img标签上(实现方法)
May 02 PHP
thinkPHP5框架auth权限控制类与用法示例
Jun 12 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
特详细的PHPMYADMIN简明安装教程
2008/08/01 PHP
一个经典实用的PHP图像处理类分享
2014/11/18 PHP
PHP中Socket连接及读写数据超时问题分析
2016/07/19 PHP
php版微信公众号自定义分享内容实现方法
2016/09/22 PHP
关于jquery ajax 调用带参数的webservice返回XML数据一个小细节
2012/07/31 Javascript
jQuery中选择器小问题(新人难免遇到)
2014/03/31 Javascript
jQuery 选择器详解
2015/01/19 Javascript
JS折半插入排序算法实例
2015/12/02 Javascript
Bootstrap轮播加上css3动画,炫酷到底!
2015/12/22 Javascript
jquery append与appendTo方法比较
2017/05/24 jQuery
使用OPENLAYERS3实现点选的方法
2020/09/24 Javascript
jQuery实现验证表单密码一致性及正则表达式验证邮箱、手机号的方法
2017/12/05 jQuery
JS计算输出100元钱买100只鸡问题的解决方法
2018/01/04 Javascript
video.js 实现视频只能后退不能快进的思路详解
2018/08/09 Javascript
vue富文本框(插入文本、图片、视频)的使用及问题小结
2018/08/17 Javascript
使用RN Animated做一个“添加购物车”动画的方法
2018/09/12 Javascript
vue实现同一个页面可以有多个router-view的方法
2018/09/20 Javascript
[36:02]DOTA2上海特级锦标赛D组小组赛#2 Liquid VS VP第一局
2016/02/28 DOTA
Python实现建立SSH连接的方法
2015/06/03 Python
Python使用自带的ConfigParser模块读写ini配置文件
2016/06/26 Python
浅谈python中的变量默认是什么类型
2016/09/11 Python
python通过opencv实现批量剪切图片
2017/11/13 Python
基于python log取对数详解
2018/06/08 Python
Django Haystack 全文检索与关键词高亮的实现
2020/02/17 Python
python实现滑雪者小游戏
2020/02/22 Python
Python3 mmap内存映射文件示例解析
2020/03/23 Python
使用Django xadmin 实现修改时间选择器为不可输入状态
2020/03/30 Python
CSS3 中filter(滤镜)属性使用详解
2020/04/07 HTML / CSS
盛大二次面试题
2016/11/18 面试题
大专会计自我鉴定
2014/02/06 职场文书
我们的节日清明节活动方案
2014/03/05 职场文书
消防标语大全
2014/06/07 职场文书
全运会口号
2014/06/20 职场文书
淘宝客服专员岗位职责
2015/04/07 职场文书
祝寿主持词
2015/07/02 职场文书
Win11 Dev 预览版25174.1000发布 (附更新修复内容汇总)
2022/08/05 数码科技