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 zend 相对路径问题
Jan 12 PHP
PHP之数组学习
May 29 PHP
深入理解PHP之数组(遍历顺序)  Laruence原创
Jun 13 PHP
php模板函数 正则实现代码
Oct 15 PHP
PHP生成验证码时“图像因其本身有错无法显示”的解决方法
Aug 07 PHP
浅析PHP原理之变量分离/引用(Variables Separation)
Aug 09 PHP
WordPress中给媒体文件添加分类和标签的PHP功能实现
Dec 31 PHP
php 使用curl模拟登录人人(校内)网的简单实例
Jun 06 PHP
Yii2表单事件之Ajax提交实现方法
May 04 PHP
laravel-admin 管理平台获取当前登陆用户信息的例子
Oct 08 PHP
PHP实现递归的三种方法
Jul 04 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依赖倒置(Dependency Injection)代码实例
2014/10/11 PHP
php的api数据接口书写实例(推荐)
2016/09/22 PHP
DWZ+ThinkPHP开发时遇到的问题分析
2016/12/12 PHP
ThinkPHP 模板substr的截取字符串函数详解
2017/01/09 PHP
浅谈laravel 5.6 安装 windows上使用composer的安装过程
2019/10/18 PHP
用JS剩余字数计算的代码
2008/07/03 Javascript
javascript window.confirm确认 取消对话框实现代码小结
2012/10/21 Javascript
AngularJS 执行流程详细介绍
2016/08/18 Javascript
Angularjs验证用户输入的字符串是否为日期时间
2017/06/01 Javascript
详解angularjs 关于ui-router分层使用
2017/06/12 Javascript
js弹性势能动画之抛物线运动实例详解
2017/07/27 Javascript
JS实现简单的星期格式转换功能示例
2018/07/23 Javascript
详解Vue+axios+Node+express实现文件上传(用户头像上传)
2018/08/10 Javascript
详解微信小程序支付流程与梳理
2019/07/16 Javascript
nodejs的安装使用与npm的介绍
2019/09/11 NodeJs
小程序如何获取多个formId实现详解
2019/09/20 Javascript
Vue强制组件重新渲染的方法讨论
2020/02/03 Javascript
vue组件添加事件@click.native操作
2020/10/30 Javascript
[02:09]EHOME夺得首届辉夜杯冠军—现场颁奖仪式
2015/12/28 DOTA
[01:01:42]Secret vs Optic Supermajor 胜者组 BO3 第二场 6.4
2018/06/05 DOTA
在Python的列表中利用remove()方法删除元素的教程
2015/05/21 Python
Python中的日期时间处理详解
2016/11/17 Python
python挖矿算力测试程序详解
2019/07/03 Python
python 字符串常用函数详解
2019/09/11 Python
Python3直接爬取图片URL并保存示例
2019/12/18 Python
python缩进长度是否统一
2020/08/02 Python
德国电子商城:ComputerUniverse
2017/04/21 全球购物
会展中心部门工作职责
2013/11/27 职场文书
初婚未育证明
2014/01/15 职场文书
中考冲刺决心书
2014/03/11 职场文书
2014年文学毕业生自我鉴定
2014/04/23 职场文书
七一建党日演讲稿
2014/09/05 职场文书
表彰大会新闻稿
2015/07/17 职场文书
导游词之岳阳楼
2019/09/25 职场文书
使用opencv-python如何打开USB或者笔记本前置摄像头
2022/06/21 Python
JavaScript架构搭建前端监控如何采集异常数据
2022/06/25 Javascript