PHP Cookie和Session
cookie
cookle常用来识别用户,可以理解为浏览器留下的一种文件,cookie可以分为会话cookie和硬盘cookie两种,会话cookie生命周期短,浏览器关闭即销毁,硬盘cookie生命周期由开发者设定,可长可短
1.创建cookie
PHP创建cookie使用函数setcookie(name,value,expire,path,domain,secure);
参数:
name:设定cookie的名称
value:cookie的值
expire:cookie的有效时长,如果不设置则为会话cookie
path:规定 cookie 的服务器路径
domain:规定 cookie 的域名
secure:规定是否只能通过HTTPS传输cookie,默认f
2.读取cookie
使用$_cookie[]
3.更新cookie
同样使用setcookie();
4.删除cookie
把cookie的有效时长设置为负值即可
需要注意:更新和删除cookie时,path,domain值必须与之前的一致
5.使用cookie实现登录
思路:
1.最终目标
:将用户输入数据与数据库中数据做比较,如果对比成功,跳转到主页,如果用户直接访问主页,弹窗阻止,但如果用户勾选自动登录复选框,则第一次登录成功后,在一段时间内允许直接访问主页。
2.实现思路:
1.1 首先如果用户勾选复选框,登陆时产生一个包含md5加密后的用户名密码的硬盘cookie,反之产生一个同样的内存cookie,主页调用数据库中的用户名,密码,用同样的加密方法加密一个密文,与cookie中的value作比较,相同则允许进入,为了方便从数据库中找到相关用户,可在登录cookie的密文值后面加一个明文id,在主页拆分即可。
登录前端的html不写了
<?phpheader("Content-type: text/html; charset=utf-8");
$usename=$_POST['usename']; //接受用户名
$passname=$_POST['pass'];//接受密码
$autologin=$_POST['check'];//接受是否自动登录
echo $autologin;
//接入数据库
$host = '127.0.0.1';
$user = 'root';
$pass = 'root';
$port=3306;
$link=@mysqli_connect("$host","$user","$pass","t2","3306");
@mysqli_set_charset($link,"utf8");
mysqli_select_db($link,'yonghu');//选择数据表
$sql="select id,username,password from yonghu WHERE username='{$usename}'&&password='{$passname}'";
$result=mysqli_query($link,$sql);
if(mysqli_num_rows($result)==1)
{//如果用户选择自动登录,则cookle类型设置为硬盘cookleif($autologin==1){$row=mysqli_fetch_assoc($result);setcookie('usename',$usename,strtotime("+1 hours"));//加密操作$son="zeianquan";$key=md5($usename.$passname.$son).":".$row['id'];setcookie('key',$key,strtotime("+1 hours"));}//否则,将cookle设置为会话cookleelse{setcookie('$usename',$usename);}exit("<script>alert('登录成功!');location.href='gerenjianjie.php';</script>");
}
else
{exit('用户名或密码错误.<a href="Untitled-2.php">重新注册</a>');
}
?>
<?php
header("Content-type: text/html; charset=utf-8");
if(!isset($_COOKIE['usename']))
{exit("<script>alert('请首先登录1!');location.href='dengluhouduan.php';</script>");
}
if(isset($_COOKIE['key'])) {$key = $_COOKIE['key'];
//找到cookle中的用户id ,与数据库中做对比,如果有,判断key是否正确,否则返回登录$resarr = explode(":", $key);$useid = end($resarr);
//接入数据库$host = '127.0.0.1';$user = 'root';$pass = 'root';$port = 3306;$link = @mysqli_connect("$host", "$user", "$pass", "t2", "3306");@mysqli_set_charset($link, "utf8");mysqli_select_db($link, 'yonghu');//选择数据表$sql = "select * from yonghu WHERE id=$useid";$result = mysqli_query($link, $sql);
//用户id存在,做进一步校验if (mysqli_num_rows($result) == 1) {
//校验思路:首先从数据库获取用户名,密码,用相同的办法加密,看密文与cookle中的是否相同$row = mysqli_fetch_assoc($result);$usename_t = $row['username'];$password_t = $row['password'];$file=$row['file'];$key = "zeianquan";$key_t = md5($usename_t.$password_t.$key);if ($key_t!= $resarr[0]){exit("<script>alert('请首先登录2!');location.href='dengluhouduan.php';</script>");}}else {exit("<script>alert('请首先登录3!');location.href='dengluhouduan.php';</script>");}
}
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head><meta http-equiv="Content-Type" content="text/html; charset=utf-8" /><title><?php echo $usename_t?>的主页</title>
</head>
<body >
这是主页!!!!!!
</body>
</html>
session
session识别用户的,他与cookie的不同在于Cookie保存在客户端浏览器中,而Session保存在服务器上,因此,session的工作原理是为每个访客创建一个UID,一般通过cookie保存,或者通过URL传导。
1.开始session
session_start();
必须位于HTML标签之前
2.设置数据
$_session['name']=.........
或者$-session=$var;
3.生命周期
可使用cookie设置
setcookie(session_name,session_id,expire);
4。用户禁用cookie后,可以使用URL传递UID
比如用一个超链接
<a href="####".session_id.>
session
PHP Cookie和Session相关推荐
- 你想了解的Cookie和Session就在这~
目录 1.会话的概念 2.保存会话的两种技术 3.Cookie 4.Session(重点) 1.会话的概念 我们知道session的意思就是会话,Cookie和Session 是两种会话技术,我们首先 ...
- Cookie和Session的区别与联系
Cookie和Session Session 会话的理解 Session的作用 HTTP协议的无状态特点 Session的实现原理(重点) Session常用方法: Cookie 基本介绍 经典案例 ...
- 前端页面——Cookie与Session有什么区别
我们在实际生活中总会遇到这样的事情,我们一旦登录(首次输入用户名和密码)某个网站之后,当我们再次访问的时候(只要不关闭浏览器),无需再次登录.而当我们在这个网站浏览一段时间后,它会产生我们浏览的记录, ...
- cookie、session总结
前几天在调试第三方支付接口时碰到一个session失效问题,用了几天时间才搞明白,现在回想一下,主要还是由于cookie和session这一块的一些基本概念没有搞清楚,现总结一下. 浏览器使用HTTP ...
- cookie 和session 的区别详解
转自 https://www.cnblogs.com/shiyangxt/archive/2008/10/07/1305506.html 这些都是基础知识,不过有必要做深入了解.先简单介绍一下. 二者 ...
- web存储中cookie、session区别
http协议是一种无状态的协议,浏览器对服务器的每一次请求都是独立的.为了使得web能够产生一些动态信息,就需要保存"状态",而cookie和session机制就是为了解决http ...
- cookie和session的代码实现
cookie和session的代码实现 1.设置cookie 今天笔试题考的是cookie的设置,我竟然选了request也可以设置cookie,我的天呀. 我们来看如何在response设置吧 pu ...
- 还分不清 Cookie、Session、Token、JWT?
点击上方蓝色"方志朋",选择"设为星标" 回复"666"获取独家整理的学习资料! 转自:掘金 作者:秋天不落叶 juejin.im/po ...
- Token ,Cookie、Session傻傻分不清楚?
点击上方蓝色"视学算法",选择"设为星标" 作者 | 王菜鸟1993 来源 | cnblogs.com/JamesWang1993/p/8593494.html ...
- Flask之Cookie与Session
Cookie与Session 1 Cookie 设置 from flask import Flask, make_responseapp = Flask(__name__)@app.route('/c ...
最新文章
- esxi里面安装openwrt和其他虚拟机
- https原理与实践
- PHP与Java使用des加密通讯
- DRF框架—序列化器中的字段校验规则
- DRBD 高可用配置详解(转)
- 2018-2019-1 20165211 实验四 外设驱动程序设计
- 忆阻尖峰神经网络中基于STDP的模式识别学习的必要条件
- supervisor 重启_每日一说:说一下supervisor进程管理工具
- 华为首家欧洲生产厂选择落户法国小镇 将为4G/5G基站生产零部件
- oform java_客户端表单通用验证checkForm(oForm)(1)
- visualvm连接服务器jvm进行监控
- 如何使用计算机蓝牙设备管理器,电脑蓝牙bluetooth怎么使用_win7蓝牙bluetooth使用教程-系统城...
- 听韩顺平聊PHP初学者如何变身大牛(一)?
- 防不胜防 这些游戏被外挂活生生地毁了
- 两台ROS相互通信,并测试节点
- win7怎么看计算机信息,如何查看Win7版本信息
- 几本适合嵌入式软件工程师阅读的电子入门书
- linux系统怎么安装office软件,如何在Linux上安装Microsoft Office | MOS86
- 【电脑使用】硬盘无法引导进入系统,无法退出BIOS
- (一)云计算概念了解