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相关推荐

  1. 你想了解的Cookie和Session就在这~

    目录 1.会话的概念 2.保存会话的两种技术 3.Cookie 4.Session(重点) 1.会话的概念 我们知道session的意思就是会话,Cookie和Session 是两种会话技术,我们首先 ...

  2. Cookie和Session的区别与联系

    Cookie和Session Session 会话的理解 Session的作用 HTTP协议的无状态特点 Session的实现原理(重点) Session常用方法: Cookie 基本介绍 经典案例 ...

  3. 前端页面——Cookie与Session有什么区别

    我们在实际生活中总会遇到这样的事情,我们一旦登录(首次输入用户名和密码)某个网站之后,当我们再次访问的时候(只要不关闭浏览器),无需再次登录.而当我们在这个网站浏览一段时间后,它会产生我们浏览的记录, ...

  4. cookie、session总结

    前几天在调试第三方支付接口时碰到一个session失效问题,用了几天时间才搞明白,现在回想一下,主要还是由于cookie和session这一块的一些基本概念没有搞清楚,现总结一下. 浏览器使用HTTP ...

  5. cookie 和session 的区别详解

    转自 https://www.cnblogs.com/shiyangxt/archive/2008/10/07/1305506.html 这些都是基础知识,不过有必要做深入了解.先简单介绍一下. 二者 ...

  6. web存储中cookie、session区别

    http协议是一种无状态的协议,浏览器对服务器的每一次请求都是独立的.为了使得web能够产生一些动态信息,就需要保存"状态",而cookie和session机制就是为了解决http ...

  7. cookie和session的代码实现

    cookie和session的代码实现 1.设置cookie 今天笔试题考的是cookie的设置,我竟然选了request也可以设置cookie,我的天呀. 我们来看如何在response设置吧 pu ...

  8. 还分不清 Cookie、Session、Token、JWT?

    点击上方蓝色"方志朋",选择"设为星标" 回复"666"获取独家整理的学习资料! 转自:掘金   作者:秋天不落叶 juejin.im/po ...

  9. Token ,Cookie、Session傻傻分不清楚?

    点击上方蓝色"视学算法",选择"设为星标" 作者 | 王菜鸟1993 来源 | cnblogs.com/JamesWang1993/p/8593494.html ...

  10. Flask之Cookie与Session

    Cookie与Session 1 Cookie 设置 from flask import Flask, make_responseapp = Flask(__name__)@app.route('/c ...

最新文章

  1. esxi里面安装openwrt和其他虚拟机
  2. https原理与实践
  3. PHP与Java使用des加密通讯
  4. DRF框架—序列化器中的字段校验规则
  5. DRBD 高可用配置详解(转)
  6. 2018-2019-1 20165211 实验四 外设驱动程序设计
  7. 忆阻尖峰神经网络中基于STDP的模式识别学习的必要条件
  8. supervisor 重启_每日一说:说一下supervisor进程管理工具
  9. 华为首家欧洲生产厂选择落户法国小镇 将为4G/5G基站生产零部件
  10. oform java_客户端表单通用验证checkForm(oForm)(1)
  11. visualvm连接服务器jvm进行监控
  12. 如何使用计算机蓝牙设备管理器,电脑蓝牙bluetooth怎么使用_win7蓝牙bluetooth使用教程-系统城...
  13. 听韩顺平聊PHP初学者如何变身大牛(一)?
  14. 防不胜防 这些游戏被外挂活生生地毁了
  15. 两台ROS相互通信,并测试节点
  16. win7怎么看计算机信息,如何查看Win7版本信息
  17. 几本适合嵌入式软件工程师阅读的电子入门书
  18. linux系统怎么安装office软件,如何在Linux上安装Microsoft Office | MOS86
  19. 【电脑使用】硬盘无法引导进入系统,无法退出BIOS
  20. (一)云计算概念了解

热门文章

  1. 设置 git pull 无需输入账号和密码
  2. linux 常用命令 杂记
  3. 如何将自己的Java项目部署到外网
  4. 小程序支付成功后跳转页面失败
  5. codeforce 457DIV2 C题
  6. react native (一)
  7. mysql int类型的长度值
  8. Perl 中级教程 第5章课后习题
  9. 例子简单说说C# ref和out
  10. http 断点续传,Windows下HTTP方式单线程下载