发布网友 发布时间:2022-04-23 07:55
共2个回答
懂视网 时间:2022-04-30 04:23
本文通过一个简单的实例完成了完整的PHP+MySQL会员系统功能。是非常实用的一个应用。具体实现步骤如下: 一、会员系统的原理: 登陆-->判断-->保持状态(Cookie或Session)-->验证状态及其权限 二、会员系统的安全: 1、学会使用常量提高md5安全性 2、Cookie/ Session 少用明文信息 3、Session安全性要大于Cookie 4、使用Cookie/ Session读取信息 尽量增加判断信息 5、Cookie/ Session内容要精简 6、对于错误信息及时销毁Cookie/ Session 三、数据库test,表user_list,及其字段 uid m_id username password 1 1 admin 291760f98414679e3fd3f9051b19b6f7 2 2 admin2 895785cfa5d8157f4d33c58ae0f55123 password:分别为md5(admintest100)、md5(admin2test100)即密码是与常量test100绑定后,再经过加密储存到数据库中的,这一步可以在注册时设置。 四、配置页面m_config.php: <?php session_start(); //数据库连接 $conn=mysql_connect(‘localhost‘,‘root‘,‘‘); mysql_select_db(‘test‘,$conn); //定义常量 define(ALL_ps,"test100"); //查看登录状态与权限 function user_shell($uid,$shell,$m_id){ $sql="select * from user_list where `uid`=‘$uid‘"; $query=mysql_query($sql); $us=is_array($row=mysql_fetch_array($query)); $shell=$us ? $shell==md5($row[username].$row[password].ALL_PS):FALSE; if($shell){ if($row[m_id]<=$m_id){//$row[m_id]越小权限越高,为1时权限最高 return $row; }else{ echo "你的权限不足,不能查看该页面"; exit(); } }else{ echo "登录后才能查看该页"; exit(); } } //设置登录超时 function user_mktime($onlinetime){ $new_time=mktime(); echo $new_time-$onlinetime."秒未操作该页面"."<br>"; if($new_time-$onlinetime>‘10‘){//设置超时时间为10秒,测试用 echo "登录超时,请重新登录"; exit(); session_destroy(); }else{ $_SESSION[times]=mktime(); } } ?> 五、登录页面m_user.php: <?php include("m_config.php"); //echo md5("admin2".ALL_PS); if($_POST[submit]){ $username=str_replace(" ","","$_POST[username]"); $sql="select * from user_list where `username`=‘$username‘"; $query=mysql_query($sql); $us=is_array($row=mysql_fetch_array($query)); $ps=$us ? md5($_POST[password].ALL_PS)==$row[password] : FALSE; if($ps){ $_SESSION[uid]=$row[uid]; $_SESSION[user_shell]=md5($row[username].$row[password].ALL_PS); $_SESSION[times]=mktime();//取得登录时忘该的时间 echo "登录成功"; }else{ echo "用户名或密码错误"; session_destroy();//密码错误时消除所有的session } } ?> <form action="" method="post"> 用户名:<input name="username" type="text" /><br /> 用户名:<input name="password" type="password" /><br /> 验证码:<input name="code" type="code" />5213<br /><br /> <input name="submit" type="submit" value="登录" /> </form> 六、设置了权限及超时的页面m_zhuangtai.php: <?php include("m_config.php"); $arr=user_shell($_SESSION[uid],$_SESSION[user_shell],1);//设置该页面只有权限为1时即最高权限的才能访问 user_mktime($_SESSION[times]);//判断是否超时10秒 //echo $_SESSION[times]."<br>";//登录时该的时间 //echo mktime()."<br>";//当前日期 //echo $arr[username]."<br>"; //echo $arr[uid]."<br>"; ?> 有权限方能查看的内容 七、测试结果: 1、用sss,sssssss登录,提示:用户名或密码错误。查看m_zhuangtai.php,提示:登录后才能查看该页。 2、用admin admin登录后,因为权限为1,所以可以查看m_zhuangtai.php页面的内容。 3、用admin admin登录后,因为权限为1,所以可以查看m_zhuangtai.php页面的内容,但10秒后再刷新,提示:X秒未操作该页面 登录超时,请重新登录。 4、用admin2 admin2登录后,因为权限为2,所以无法查看m_zhuangtai.php页面的内容,提示:你的权限不足,不能查看该页面。 希望本文所述实例对大家PHP程序开发有所帮助。
PHP+MYSQL会员系统的开发实例教程
标签:
热心网友 时间:2022-04-30 01:31
丛书序
前言
第1章 初识PHP
1.1 什么是PHP
1.2 PHP可以做什么
1.3 PHP有哪些特性
1.4 PHP常用开发工具
1.5 边学边做:登录Intemet了解 PHP的应用情况
1.6 本章小结
1.7 练习题
第2章 PHP服务器环境搭建
2.1 PHP程序运行原理
2.2 PHP安装前的准备
2.3 Windows下PHP的安装与配置
2.4 Linux下PHP的安装与配置
2.5 边学边做:将本地机器配置成PHP服务器
2.6 本章小结
2.7 练习题
第3章 PHP 5的基本语法
3.1 PHP语法基础
3.2 PHP中的常量
3.3 PHP中的变量
3.4 运算符和表达式
3.5 流程控制语句
3.6 自定义函数
3.7 变量的作用域
3.8 边学边做:用函数递归实现阶乘运算和斐波那契数列
3.9 本章小结
3.10 练习题
第4章 PHP 5面向对象编程
4.1 PHP面向对象概述
4.2 类与对象
4.3 构造函数与析构函数
4.4 类的继承
4.5 覆盖与重载
4.6 self、parent与关键字
4.7 本章小结
4.8 练习题
第5章 PHP 5内置数组和常量
5.1 PHP 5内置数组简介
5.2 $一POST和$GET数组
5.3 $一COOKIE和$一SESSION数组一
5.4 用内置数组获取服务器环境信息一
5.5 $一FILE数组
5.6 边学边做:用PHP内置数组接收表单数据
5.7 本章小结一
5.8 练习题
第6章 PHP 5常用函数介绍
6.1 PHP 5内置函数概述
6.2 数组函数
6.3 字符串处理函数
6.4 时间日期函数
6.5 数学函数
6.6 图像处理函数
6.7 文件系统函数
6.8 其他函数
6.9 边学边做:用文本操作实现支持头像上传的用户注册与登录.
6.1 0本章小结
6.1 1练习题
第7章 MySQL数据库与结构化查询语言(SQL)
7.1 MySQL数据库系统简介
7.2 MySQL的安装与初始化设置
7.3 MySQL中的数据类型
7.4 结构化查询语言(SQL)
7.5 MySQL用户管理
7.6 MySQL可视化管理工具——phpMyAdmin
7.7 边学边做MySQL安装与使用综合练习
7.8 本章小结
7.9 练习题
第8章 PHP+MySQL数据库编程
8.1 连接数据库前的准备工作
8.2 PHP操作MySQL数据库的流程
8.3 PHP操作MySQL方法详解
8.4 边学边做:用MySQL改写用户注册与登录程序
8.5 本章小结
8.6 练习题
第9章 PHP+MySQL多模块新闻管理系统开发
9.1 系统分析
9.2 实施步骤
9.3 系统优化
9.4 本章小结
9.5 练习题
第10章 支持多用户的博客系统开发
10.1 系统分析
10.2 实施步骤
10.3 本章小结
10.4 练习题