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中路径问题的解决方案
Oct 09 PHP
php中截取字符串支持utf-8
Jan 18 PHP
PHP 最大运行时间 max_execution_time修改方法
Mar 08 PHP
php开启安全模式后禁用的函数集合
Jun 26 PHP
一个PHP并发访问实例代码
Sep 06 PHP
php继承中方法重载(覆盖)的应用场合
Feb 09 PHP
php使用NumberFormatter格式化货币的方法
Mar 21 PHP
[原创]php简单隔行变色功能实现代码
Jul 09 PHP
功能强大的php文件上传类
Aug 29 PHP
浅谈PHP发送HTTP请求的几种方式
Jul 25 PHP
搜索附近的人PHP实现代码
Feb 11 PHP
PHP实现批量修改文件名的方法示例
Sep 18 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
NT IIS下用ODBC连接数据库
2006/10/09 PHP
PHP explode()函数用法、切分字符串
2012/10/03 PHP
codeigniter教程之上传视频并使用ffmpeg转flv示例
2014/02/13 PHP
使用Thinkphp框架开发移动端接口
2015/08/05 PHP
PHP 自动加载的简单实现(推荐)
2016/08/12 PHP
JavaScript 学习笔记(五)
2009/12/31 Javascript
jquery的$getjson调用并获取远程的JSON字符串问题
2012/12/10 Javascript
jQuery cdn使用介绍
2013/05/08 Javascript
javascript与jquery中跳出循环的区别总结
2013/11/04 Javascript
jquery $.fn $.fx是什么意思有什么用
2013/11/04 Javascript
javascript面向对象程序设计(一)
2015/01/29 Javascript
jQuery 1.9.1源码分析系列(十三)之位置大小操作
2015/12/02 Javascript
浏览器环境下JavaScript脚本加载与执行探析之defer与async特性
2016/01/14 Javascript
Vue方法与事件处理器详解
2016/12/01 Javascript
Javascript基础回顾之(二) js作用域
2017/01/31 Javascript
解决angularJS中input标签的ng-change事件无效问题
2018/09/13 Javascript
Node.js Domain 模块实例详解
2020/03/18 Javascript
Javascript实现秒表计时游戏
2020/05/27 Javascript
[01:32]完美世界DOTA2联赛10月29日精彩集锦
2020/10/30 DOTA
Django自定义插件实现网站登录验证码功能
2017/04/19 Python
Python判断变量是否为Json格式的字符串示例
2017/05/03 Python
python中获得当前目录和上级目录的实现方法
2017/10/12 Python
Python实现PS滤镜特效Marble Filter玻璃条纹扭曲效果示例
2018/01/29 Python
Python3.6中Twisted模块安装的问题与解决
2019/04/15 Python
django一对多模型以及如何在前端实现详解
2019/07/24 Python
python多维数组分位数的求取方式
2020/03/03 Python
Pycharm新手使用教程(图文详解)
2020/09/17 Python
python解压zip包中文乱码解决方法
2020/11/27 Python
远程Wi-Fi宠物监控相机:Petcube
2017/04/26 全球购物
Raffaello Network德国:意大利拉斐尔时尚购物网
2019/05/01 全球购物
美国沙龙美发产品购物网站:Hair.com by L’Oreal
2020/11/09 全球购物
安全事故检讨书
2014/01/18 职场文书
完整版商业计划书
2014/09/15 职场文书
电力企业职工培训心得体会
2016/01/11 职场文书
导游词之峨眉山
2019/12/16 职场文书
Win10此设备不支持接收Miracast无法投影的解决方法
2022/07/07 数码科技