文章目录
1.学习之前的准备
1.登录注册页面
2.之前你们完成的微博首页
tip:重点看视频,我这个只是大致梳理了知识点
2.cookie
2.1 cookie的基本知识
2.1.1 功能
php文件不能跨页面访问
1.php
<?php
$user='admin';
?>
2.php
<?php
echo $user;
?>
当你访问2.php的时候你会发现没有返回值。这说明,两个php文件不能够跨页面访问,该怎么实现呢?
cookie能够辅助实现该功能
1.php
<?php
$user='admin';
setcookie('name','admin');
?>
2.php
<?php
print_r($_COOKIE);
?>
从而实现跨页面访问
2.1.2.cookie的特点
- cookie只能存放ASCII字符串
- cookie能够被轻易看见(见视频)
- cookie能够设置有效期
- cookie保存在客户端(用户的浏览器中),不占用服务器资源,即使同时访问的人很多,也不会造成什么大的影响
- 浏览器关闭,若设置了有效时间,再次进入浏览器,依旧可以获取cookie,直到超过有效时间
- 等等
2.1.3.cookie计数器的实现(视频详细一点)
2.1.4.cookie的几个参数(具体见视频)
1.键名
2.键值
3.有效时间
4.设置cookie的路径(页面只能访问在上一级目录php文件设置的cookie值!)
5.不常用(只做了解)cookie是不能跨域的,但它可以在不同的子域名中生效。
2.2cookie的实例
2.2.1 登录注册
见cooike文件夹
- 多注册几个账号(localhost/cookie/register.html)
- 分别用这些账号去登录(localhost/cookie/login.html)
- 观察个人信息处有没有发生变化
- 观察浏览器中cookie的值
- 点退出后,再次访问(localhost/cookie/index.php)
1.尝试着用多个账号进行登录观察用户信息这一栏
2.点击退出之后,再次访问localhost/cookie/index.php,观察出现什么现象
2.2.12访问次数
可以使用上面的cookie计时器来实现
2.3 cookie的不足
cookie的缺点:能够被伪造(并且我们不能禁止用户在浏览器伪造cookie,它是浏览器自带的功能),特别不安全!
如何解决不安全问题
我们可以设计一个专属于我们自己的cookie格式,我们来判断传过来的cookie对不对
2.4 对cookie改善后的登录注册
见文件cookie1
具体见 index.php和login.php
观察浏览器中cookie的值与上面的作比较
加密方式
<?php
$salt='dgkaefwkjflkffe';
//加密用户名
$name='lisi';
$name=md5($name.'|'.$salt);
?>
3.session
3.1session的实现机理
session的理解:(放在浏览器端)
可以将超市的储物柜理解为服务器。我们的相关用户信息理解为我们的商品
将商品存储起来以后,我们会有一个小票,小票的名字为session_id,它会放在cookie中存储起来。如果我们需要获取商品,必须凭借小票在服务器端(即存储柜)获取我们的物品(即用户信息)
3.2session的特点
1.session的值是一串乱码(不仅仅复杂,每一次还不一样!),难以伪造
2.session无论是读取、修改、销毁,都要先session_start()
3.浏览器一旦关闭,则session就失效了
3.3session的销毁
- 可以把session看作一个普通数组,所以销毁时,可以直接赋值一个空数组
session_start()
$_session=array();
2.session_start()
session_destory();
3.3session的实例
根据上面的cookie实例,试着自己用session写出登录注册
4.cookie与session之间的比较
特点 | cookie | session |
---|---|---|
存储地址 | 客户 | 服务器端 |
存储类型 | 字符串、数字 | 字符串、数字 、数组、对象 |
创建方式 | setcookie | 直接操作$_SESSION |
读取 | $_COOKIE | $_SESSION |
销毁 | session(‘key’,0) | unset() 、session_destory() |