我渐渐就安于我的现状了,对于我的孤独,我也习惯了。总有那么多的人,追寻一些甜蜜温暖的东西,他们喜欢的永远是星星与花朵。但在星星雨花朵之中,怎样才能显得出一个人坚定的步伐呢。
双层描边标题
点击上方蓝字,关注我们创想
技术分享Four
技术分享第四弹
来袭流水时间
铁打小创
前面三期的内容你学得怎么样呢
有没有感觉到任通二脉被打通
有没有体会到醍醐灌顶的感觉
不管有没有
跟着小创走
无须畏惧路上遇到的种种难题
前方道路漫漫
少年
请配妥战剑
继续仗走网络“天涯”
本期内容PHP实现用户登录注册
创想工作室
在信息化时代,你会越来越发现学习一门程序语言的重要性,并且自学语言也是一种能力。我相信,只要你跟着小创,点点积累慢慢进步,必能积跬步至千里!一起学习PHP新内容吧!
PHP必学技能
1知识点
2实现流程
3案例演示
4优化建议
01 知识点
(一)PDO操作数据库1. 建立连接
下面红色字体分别代表数据库类型、主机、数据库名、用户名、密码,需替换成自己的。
$conn = new PDO('mysql:host=localhost;dbname=test', 'root', '1');
$conn->exec('set names utf8');
//与下面等效
$conn = new PDO("mysql:host=localhost;port=3306;dbname=test;charset=utf8","root","1");
2. SQL查询
$tis = $conn->query($sql); //执行sql查询
//与下面等效
$tis = $conn->prepare($sql); //预处理
$tis->execute(); //执行预查询
3. 获取查询数据
PDO::FETCH_ASSOC 表示获取关联数组,PDO::FETCH_NUM 表示获取数字数组。
PDO::FETCH_OBJ 表示获取对象数组,不填默认会获取关联数组和数字数组。
$tis->fetchAll(PDO::FETCH_ASSOC); //获取所有匹配的记录
$tis->fetch(PDO::FETCH_ASSOC); //获取一行匹配的记录
$tis->rowCount(); //返回影响行数
$conn->lastInsertId() //获取最后一次插入的id
4. 关闭连接
$conn=null; //关闭连接,不用这么做的话,脚本结束也会自动关闭。
(二)Session会话操作1. 存储和取回Session
注意:session_start()相当于初始化$_SESSION变量,若不加session_start(),一切白操作。
session_start(); //启动会话,十分重要,要放在用到$_SESSION的最前面
$_SESSION['uid']=1; // 存储 session 数据
// 检索 session 数据
echo '用户ID:'.$_SESSION['uid']; //输出 用户ID:1
2. 销毁Session
session_start(); //启动会话
//检测session中是否已设置 "uid" 变量
if(isset($_SESSION['uid']))
unset($_SESSION['uid']); //释放session中的 "uid" 变量
(三) PHP的几种密码加密1. 不安全的、内置希哈加密(不可逆加密)
$str='123'; //定义一个密码
md5($str); //md5加密返回32位十六进制数字
sha1($str); //sha1加密返回40位十六进制数字
crc32($str); //crc32加密
2. hash加密(较全的哈希加密函数)
$str='123'; //定义一个密码
hash('md5',$str); //对变量str进行md5加密,其中md5可换成crc32、adler32、md4、sha256、sha1、sha384以及sha512等
//都是哈希算法,所以它们之间速度差距不大,可选择混合加密增加安全性
//还可以在github网找哈希bcrypt算法类库,如phpass等,更专业
3. Password Hashing API 加密(PHP推荐)
PASSWORD_DEFAULT - 使用 bcrypt 算法 (PHP 5.5.0 默认)
PASSWORD_BCRYPT - 使用CRYPT_BLOWFISH 算法创建散列
PASSWORD_ARGON2I - 使用 Argon2 散列算法创建散列
$password='123'; //定义一个密码
$hash = password_hash($password, PASSWORD_DEFAULT); //对密码加密
password_verify($password, $hash); //验证已经加密的密码,返回bool类型
4. 对称算法(可逆加密)
常用的有如下内置的URL加密、Base64加密,高级的有DES/AES、3DES加密
$encode = base64_encode($str); //base64编码加密
echo base64_decode($encode); //base64编码解密
$encode = urlencode ($str); //url编码加密
echo urldecode($encode); //url编码解密
02 实现流程
(一)登录实现流程 (二)注册实现流程 (三)登陆首页与退出登录实现流程03 案例演示
(一)目录结构目录分布
login.html 登录页面
register.html 注册页面
login.php 实现登录功能
register.php 实现注册登录
index.php 实现登录检测功能
logout.php 实现退出登录功能
tools 存放php工具类
其他目录 存放html资源文件
(二)安装使用1.搭建的服务器环境要求如下:
• PHP >= 5.5.0
• PDO PHP Extension
2.把资源文件放到服务器根目录
3.用浏览器访问http://localhost/login.html
4.出现如图界面则搭建成功
5.将user.sql导入数据库或复制过来直接运行
(三) sql文件导入 (四)部分代码展示登录实现
注册实现
登录检测实现
退出登录实现
数据库连接
04 优化建议
(一)建议1. 登录注册增加验证码,防机器暴破密码;
2. 完善接收表单字段检测;
3. 处理PDO可能发生的异常;
4. 将重复的代码封装成函数;
视频讲解下期预告
Java Web 之验证码校验快速实现
下期再见▼
本样式由135编辑器出品,不允许任何 我是一个标题第三方编辑器抄袭使用,违者必纠。编辑:林苗真
剪辑:肖可欣
初审:黄晓丹 肖可欣
复审:莫嘉文
终审:陈正铭
出品:创想工作室(韶关市艾悉逖网络科技有限公司)
扫码关注我们 如有收获,一键三连!