热门标签 | 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



推荐阅读
  • 本文详细介绍了如何在Linux系统上安装和配置Smokeping,以实现对网络链路质量的实时监控。通过详细的步骤和必要的依赖包安装,确保用户能够顺利完成部署并优化其网络性能监控。 ... [详细]
  • 深入理解Cookie与Session会话管理
    本文详细介绍了如何通过HTTP响应和请求处理浏览器的Cookie信息,以及如何创建、设置和管理Cookie。同时探讨了会话跟踪技术中的Session机制,解释其原理及应用场景。 ... [详细]
  • PHP 编程疑难解析与知识点汇总
    本文详细解答了 PHP 编程中的常见问题,并提供了丰富的代码示例和解决方案,帮助开发者更好地理解和应用 PHP 知识。 ... [详细]
  • 本文详细介绍 Go+ 编程语言中的上下文处理机制,涵盖其基本概念、关键方法及应用场景。Go+ 是一门结合了 Go 的高效工程开发特性和 Python 数据科学功能的编程语言。 ... [详细]
  • 本文详细介绍了Java中org.neo4j.helpers.collection.Iterators.single()方法的功能、使用场景及代码示例,帮助开发者更好地理解和应用该方法。 ... [详细]
  • 优化ListView性能
    本文深入探讨了如何通过多种技术手段优化ListView的性能,包括视图复用、ViewHolder模式、分批加载数据、图片优化及内存管理等。这些方法能够显著提升应用的响应速度和用户体验。 ... [详细]
  • 本文将介绍如何编写一些有趣的VBScript脚本,这些脚本可以在朋友之间进行无害的恶作剧。通过简单的代码示例,帮助您了解VBScript的基本语法和功能。 ... [详细]
  • 本题探讨了一种字符串变换方法,旨在判断两个给定的字符串是否可以通过特定的字母替换和位置交换操作相互转换。核心在于找到这些变换中的不变量,从而确定转换的可能性。 ... [详细]
  • Explore a common issue encountered when implementing an OAuth 1.0a API, specifically the inability to encode null objects and how to resolve it. ... [详细]
  • 数据管理权威指南:《DAMA-DMBOK2 数据管理知识体系》
    本书提供了全面的数据管理职能、术语和最佳实践方法的标准行业解释,构建了数据管理的总体框架,为数据管理的发展奠定了坚实的理论基础。适合各类数据管理专业人士和相关领域的从业人员。 ... [详细]
  • 深入理解Java中的volatile、内存屏障与CPU指令
    本文详细探讨了Java中volatile关键字的作用机制,以及其与内存屏障和CPU指令之间的关系。通过具体示例和专业解析,帮助读者更好地理解多线程编程中的同步问题。 ... [详细]
  • 本文介绍了如何使用JQuery实现省市二级联动和表单验证。首先,通过change事件监听用户选择的省份,并动态加载对应的城市列表。其次,详细讲解了使用Validation插件进行表单验证的方法,包括内置规则、自定义规则及实时验证功能。 ... [详细]
  • 深入解析Spring Cloud Ribbon负载均衡机制
    本文详细介绍了Spring Cloud中的Ribbon组件如何实现服务调用的负载均衡。通过分析其工作原理、源码结构及配置方式,帮助读者理解Ribbon在分布式系统中的重要作用。 ... [详细]
  • 深入理解C++中的KMP算法:高效字符串匹配的利器
    本文详细介绍C++中实现KMP算法的方法,探讨其在字符串匹配问题上的优势。通过对比暴力匹配(BF)算法,展示KMP算法如何利用前缀表优化匹配过程,显著提升效率。 ... [详细]
  • 本文详细介绍了Java编程语言中的核心概念和常见面试问题,包括集合类、数据结构、线程处理、Java虚拟机(JVM)、HTTP协议以及Git操作等方面的内容。通过深入分析每个主题,帮助读者更好地理解Java的关键特性和最佳实践。 ... [详细]
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社区 版权所有