热门标签 | 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进行远程调用时出现的请求头丢失问题,并提供了具体的解决方案。重点讨论了单线程和异步调用两种场景下的处理方法。 ... [详细]
  • 本次考试于2016年10月25日上午7:50至11:15举行,主要涉及数学专题,特别是斐波那契数列的性质及其在编程中的应用。本文将详细解析考试中的题目,并提供解题思路和代码实现。 ... [详细]
  • 作者:守望者1028链接:https:www.nowcoder.comdiscuss55353来源:牛客网面试高频题:校招过程中参考过牛客诸位大佬的面经,但是具体哪一块是参考谁的我 ... [详细]
  • 优化局域网SSH连接延迟问题的解决方案
    本文介绍了解决局域网内SSH连接到服务器时出现长时间等待问题的方法。通过调整配置和优化网络设置,可以显著缩短SSH连接的时间。 ... [详细]
  • 作为一名专业的Web前端工程师,掌握HTML和CSS的命名规范是至关重要的。良好的命名习惯不仅有助于提高代码的可读性和维护性,还能促进团队协作。本文将详细介绍Web前端开发中常用的HTML和CSS命名规范,并提供实用的建议。 ... [详细]
  • 深入理解Shell脚本编程
    本文详细介绍了Shell脚本编程的基础概念、语法结构及其在操作系统中的应用。通过具体的示例代码,帮助读者掌握如何编写和执行Shell脚本。 ... [详细]
  • 本文将介绍网易NEC CSS框架的规范及其在实际项目中的应用。通过详细解析其分类和命名规则,探讨如何编写高效、可维护的CSS代码,并分享一些实用的学习心得。 ... [详细]
  • 本文探讨了如何在日常工作中通过优化效率和深入研究核心技术,将技术和知识转化为实际收益。文章结合个人经验,分享了提高工作效率、掌握高价值技能以及选择合适工作环境的方法,帮助读者更好地实现技术变现。 ... [详细]
  • 本文探讨了在Django项目中,如何在对象详情页面添加前后导航链接,以提升用户体验。文章详细描述了遇到的问题及解决方案。 ... [详细]
  • 本文探讨了在 SQL Server 中使用 JDBC 插入数据时遇到的问题。通过详细分析代码和数据库配置,提供了解决方案并解释了潜在的原因。 ... [详细]
  • 深入浅出TensorFlow数据读写机制
    本文详细介绍TensorFlow中的数据读写操作,包括TFRecord文件的创建与读取,以及数据集(dataset)的相关概念和使用方法。 ... [详细]
  • 本文详细介绍了JSP(Java Server Pages)的九大内置对象及其功能,探讨了JSP与Servlet之间的关系及差异,并提供了实际编码示例。此外,还讨论了网页开发中常见的编码转换问题以及JSP的两种页面跳转方式。 ... [详细]
  • 本文将带领读者深入了解Android系统源码在手机中的实际表现,通过详细的步骤和专业的解释,帮助你更好地理解Android系统的底层运作机制。 ... [详细]
  • Qt中QSpinBox与QSlider的联动实现
    本文介绍如何在Qt框架下将QSpinBox和QSlider组件进行联动,使用户在拖动滑块或修改文本框中的数值时,两个组件能同步更新,从而提供更加直观和便捷的用户体验。 ... [详细]
  • 自己用过的一些比较有用的css3新属性【HTML】
    web前端|html教程自己用过的一些比较用的css3新属性web前端-html教程css3刚推出不久,虽然大多数的css3属性在很多流行的浏览器中不支持,但我个人觉得还是要尽量开 ... [详细]
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社区 版权所有