热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

【二十五】cookie与session学习总结

一:cookie1.创建cookie关键字:setcookie用于保存cookie原理:当浏览器访问cookie.php页面时,我们的服务


一:COOKIE

1.创建COOKIE


关键字:setCOOKIE 用于保存COOKIE


原理:当浏览器访问COOKIE.php页面时,我们的服务器就会以set-COOKIE的方式将COOKIE信息回送到http响应,当浏览器获取到信息后,会保存在本机



//第一个参数:COOKIE(key).第二个参数:表示val.第三个参数表示COOKIE值
setCOOKIE("name","huahua",time()+3600);
echo "成功";


2.查询COOKIE(获取客户端的COOKIE信息)


COOKIE信息是保存在$_COOKIE超全局数组中的



// 超全局数组
echo "

";
print_r($_COOKIE);
echo "
";
//获取指定的键对应的值
$name=$_COOKIE['name'];
echo "$name";

3.更新COOKIE(重新设置COOKIE)


关键字:setCOOKIE:参考创建COOKIE


4.删除COOKIE



// 删除某个键值对
setCOOKIE("password","",time()-3600);
// 删除所有键值对
foreach ($_COOKIE as $key => $value) {
setCOOKIE("$key","$value",time()-3600);
}


 实例:判断你是否第一次登陆



if (!empty($_COOKIE['lastvisit'])){
echo "您上次登陆的时间为".$_COOKIE['lastvisit'];
setCOOKIE('lastvisit',date("Y-m-d H:i:s"),time()+3600);
}
else{
echo "您是第一次登陆";
setCOOKIE('lastvisit',date("Y-m-d H:i:s"),time()+3600);
}


 二:session

1.添加session



php
session_start();
// 字符串
$_SESSION["name"]="huahua";
// 数字
$_SESSION['aeg']=18;
// 布尔值
$_SESSION["isgirl"]=true;
// 数组
$arr1=array("hah","我们");
$_SESSION["arr1"]=$arr1;
// 对象
class Dog{
private $name;
private $intro;
function __construct($name,$intro){
$this->name=$name;
$this->intro=$intro;
}
public function getname(){
return $this->name;
}
}
$d=new Dog("xiaogou","i am good");
$_SESSION["dog1"]=$d;
echo "ook";
// 使用超全局数组查看session
echo "

";
print_r($_SESSION);
echo "
";
?>

2.获取COOKIE数据



php
// 获取所有的session数据
echo "获取session数据";
// 需要开启session
session_start();
echo "

";
print_r($_SESSION);
echo "
";
// 字符串
echo "name=".$_SESSION["name"];
echo "
";
// 数字
echo "age=".$_SESSION["aeg"];
echo "
";
// 数组
foreach ($_SESSION["arr1"] as $key => $value) {
echo "$key=$value
";
}
// 取对象数据
// 需要加载类的信息。因为是从session中取得数据,而session中并没有保存类的信息

class Dog{
private $name;
private $intro;
function __construct($name,$intro){
$this->name=$name;
$this->intro=$intro;
}
public function getname(){
return $this->name;
}
}
$xiaogou=$_SESSION["dog1"];
echo $xiaogou->getname();
?>

3.更新session数据



php
session_start();
$_SESSION["name"]="hei";
$_SESSION["aeg"]=99;
echo "更新成功";
echo "

";
print_r($_SESSION);
echo "
";
?>

4.删除session数据



php
session_start();
// 删除指定键值对
unset($_SESSION['name']);
// 删除所有的session信息
session_destroy();
?>


 购物大厅例题:


buy.php



php
echo "

购物大厅

";
if (isset($_GET['PHPSESSID'])) {
session_id($_GET['PHPSESSID']);
// 重置该页面的ssesion_id
}
session_start();
$sid=session_id();
// echo SID; SID的输出为PHPSESSID=mpsav4071jlu8iue98tiujdp91
echo "$sid'>天龙八部
";
echo "$sid'>聊斋
";
echo "$sid'>红楼梦
";
echo "$sid'>西游记
";
echo "$sid'>查看您购买的商品列表";
?>

showpre.php



1 php
2 if (isset($_GET['PHPSESSID'])) {
3 session_id($_GET['PHPSESSID']);
4 }
5 //注意:sid的设置在session_start之前还是之后
6 $sid=session_id();
7 session_start();
8 // 接收书号和书名
9 $bookid=$_GET['bookid'];
10 $bookname=$_GET['bookname'];
11
12 $_SESSION["$bookid"]="$bookname";
13 echo "购买商品成功";
14 echo "$sid>返回购物大厅";
15 ?>


buglist.php



1 php
2 if (isset($_GET['PHPSESSID'])) {
3 session_id($_GET['PHPSESSID']);
4 }
5 session_start();
6 echo "购物车商品有:
";
7 foreach ($_SESSION as $key => $value) {
8 echo "书号是$key,书名是$value
";
9 }
10 ?>


界面显示:




 


 



问题:当用户禁用COOKIE后,怎样使用session技术共享多个页面呢?(重写url)


  1. 在每个超链接上添加一个 PHPSESSID=session id。同时每个页面判断是是否有已生成的session id 。看上例子
  2. 使用常量SID。
  3. 设置php.ini下的session.use_trans_sid = 1

 


转载于:https://www.cnblogs.com/8013-cmf/p/8079789.html



推荐阅读
  • 本文详细探讨了在微服务架构中,使用Feign进行远程调用时出现的请求头丢失问题,并提供了具体的解决方案。重点讨论了单线程和异步调用两种场景下的处理方法。 ... [详细]
  • 深入理解Cookie与Session会话管理
    本文详细介绍了如何通过HTTP响应和请求处理浏览器的Cookie信息,以及如何创建、设置和管理Cookie。同时探讨了会话跟踪技术中的Session机制,解释其原理及应用场景。 ... [详细]
  • 本文详细介绍了Java编程语言中的核心概念和常见面试问题,包括集合类、数据结构、线程处理、Java虚拟机(JVM)、HTTP协议以及Git操作等方面的内容。通过深入分析每个主题,帮助读者更好地理解Java的关键特性和最佳实践。 ... [详细]
  • MQTT技术周报:硬件连接与协议解析
    本周开发笔记重点介绍了在新项目中使用MQTT协议进行硬件连接的技术细节,涵盖其特性、原理及实现步骤。 ... [详细]
  • 本文探讨了如何优化和正确配置Kafka Streams应用程序以确保准确的状态存储查询。通过调整配置参数和代码逻辑,可以有效解决数据不一致的问题。 ... [详细]
  • 深入解析 Apache Shiro 安全框架架构
    本文详细介绍了 Apache Shiro,一个强大且灵活的开源安全框架。Shiro 专注于简化身份验证、授权、会话管理和加密等复杂的安全操作,使开发者能够更轻松地保护应用程序。其核心目标是提供易于使用和理解的API,同时确保高度的安全性和灵活性。 ... [详细]
  • PHP 过滤器详解
    本文深入探讨了 PHP 中的过滤器机制,包括常见的 $_SERVER 变量、filter_has_var() 函数、filter_id() 函数、filter_input() 函数及其数组形式、filter_list() 函数以及 filter_var() 和其数组形式。同时,详细介绍了各种过滤器的用途和用法。 ... [详细]
  • Python + Pytest 接口自动化测试中 Token 关联登录的实现方法
    本文将深入探讨 Python 和 Pytest 在接口自动化测试中如何实现 Token 关联登录,内容详尽、逻辑清晰,旨在帮助读者掌握这一关键技能。 ... [详细]
  • 配置PHPStudy环境并使用DVWA进行Web安全测试
    本文详细介绍了如何在PHPStudy环境下配置DVWA( Damn Vulnerable Web Application ),并利用该平台进行SQL注入和XSS攻击的练习。通过此过程,读者可以熟悉常见的Web漏洞及其利用方法。 ... [详细]
  • Django Token 认证详解与 HTTP 401、403 状态码的区别
    本文详细介绍了如何在 Django 中配置和使用 Token 认证,并解释了 HTTP 401 和 HTTP 403 状态码的区别。通过具体的代码示例,帮助开发者理解认证机制及权限控制。 ... [详细]
  • 深入浅出TensorFlow数据读写机制
    本文详细介绍TensorFlow中的数据读写操作,包括TFRecord文件的创建与读取,以及数据集(dataset)的相关概念和使用方法。 ... [详细]
  • 本文详细介绍了如何使用PHP检测AJAX请求,通过分析预定义服务器变量来判断请求是否来自XMLHttpRequest。此方法简单实用,适用于各种Web开发场景。 ... [详细]
  • 本文介绍了如何使用JQuery实现省市二级联动和表单验证。首先,通过change事件监听用户选择的省份,并动态加载对应的城市列表。其次,详细讲解了使用Validation插件进行表单验证的方法,包括内置规则、自定义规则及实时验证功能。 ... [详细]
  • 深入解析Spring Cloud Ribbon负载均衡机制
    本文详细介绍了Spring Cloud中的Ribbon组件如何实现服务调用的负载均衡。通过分析其工作原理、源码结构及配置方式,帮助读者理解Ribbon在分布式系统中的重要作用。 ... [详细]
  • 优化Flask应用的并发处理:解决Mysql连接过多问题
    本文探讨了在Flask应用中通过优化后端架构来应对高并发请求,特别是针对Mysql 'too many connections' 错误的解决方案。我们将介绍如何利用Redis缓存、Gunicorn多进程和Celery异步任务队列来提升系统的性能和稳定性。 ... [详细]
author-avatar
月雨淅淅
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有