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中文字符截取防乱码
Mar 28 PHP
PHP基本语法总结
Sep 06 PHP
PHP使用get_headers函数判断远程文件是否存在的方法
Nov 28 PHP
php blowfish加密解密算法
Jul 02 PHP
PHP文件上传处理案例分析
Oct 15 PHP
php实现网页端验证码功能
Jul 11 PHP
PHP中quotemeta()函数的用法讲解
Apr 04 PHP
Laravel timestamps 设置为unix时间戳的方法
Oct 11 PHP
laravel-admin 实现在指定的相册下添加照片
Oct 21 PHP
thinkphp框架类库扩展操作示例
Nov 26 PHP
PHP设计模式之建造者模式(Builder)原理与用法案例详解
Dec 12 PHP
PHP超全局变量实现原理及代码解析
Sep 01 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
SONY SRF-40W电路分析
2021/03/02 无线电
PHP MemCached 高级缓存应用代码
2010/08/05 PHP
浅析php fwrite写入txt文件的时候用 \r\n不能换行的问题
2013/08/06 PHP
基于PHP+jQuery+MySql实现红蓝(顶踩)投票代码
2015/08/25 PHP
PHP实现仿百度文库,豆丁在线文档效果(word,excel,ppt转flash)
2016/03/10 PHP
php精度计算的问题解析
2019/06/21 PHP
PHP的介绍以及优势详细分析
2019/09/05 PHP
javascript RadioButtonList获取选中值
2009/04/09 Javascript
Javascript对象中关于setTimeout和setInterval的this介绍
2012/07/21 Javascript
js字符串转换成数字与数字转换成字符串的实现方法
2014/01/08 Javascript
JavaScript-RegExp对象只能使用一次问题解决方法
2014/06/23 Javascript
Jquery动态替换div内容及动态展示的方法
2015/01/23 Javascript
使用jquery.qrcode.js生成二维码插件
2016/10/17 Javascript
快速实现JS图片懒加载(可视区域加载)示例代码
2017/01/04 Javascript
js 判断登录界面的账号密码是否为空
2017/02/08 Javascript
vue+axios实现文件下载及vue中使用axios的实例
2018/09/21 Javascript
JavaScript偏函数与柯里化实例详解
2019/03/27 Javascript
VUEX-action可以修改state吗
2019/11/19 Javascript
vue学习笔记之过滤器的基本使用方法实例分析
2020/02/01 Javascript
实例讲解React 组件
2020/07/07 Javascript
Pyramid Mako模板引入helper对象的步骤方法
2013/11/27 Python
Python中表示字符串的三种方法
2017/09/06 Python
python: 判断tuple、list、dict是否为空的方法
2018/10/22 Python
详解Python中的测试工具
2019/06/09 Python
Python实现多线程下载脚本的示例代码
2020/04/03 Python
如何用python处理excel表格
2020/06/09 Python
一些关于python 装饰器的个人理解
2020/08/31 Python
HTML5实现无刷新修改URL的方法
2019/11/14 HTML / CSS
介绍下Lucene建立索引的过程
2016/03/02 面试题
主管竞聘书范文
2014/03/31 职场文书
初三学生评语大全
2014/04/24 职场文书
2014年药剂科工作总结
2014/11/26 职场文书
汇报材料怎么写
2014/12/30 职场文书
PHP使用非对称加密算法RSA
2021/04/21 PHP
Golang的继承模拟实例
2021/06/30 Golang
vue ref如何获取子组件属性值
2022/03/31 Vue.js