第117讲 session①-session的原理介绍 保存session

注意所有取session之前都要判断是否为null

思考问题

浏览网站时,张三李四购买不同的商品,并且在查看购物车时候可以查看到各自需要购买的商品
思路:

  • 1、数据库
  • 2、cookies
  • 3、session

当登陆某个网站,在任意网页界面都能看到登陆的名字?
思路:

  • 1、数据库->特别繁琐性能极差,每个页面都要请求数据库,加入用户量多爆炸了
  • 2、cookie
  • 问题1:安全性
  • 问题2:在网络传数据,涉及到带宽的问题(所有涉及到的cookie每次都会进行传递)
    解决之道3:session 用session的话 session文件直接保存在服务器端。首先安全性可以保证,数据是存在服务器端的。那么直接从服务器取就好了不需要像cookie一样浏览器传递来传递去省带宽了。

之前的用户管理系统 :无需登录就可以直接管理用户增删查改(有链接就行)

最好的解决方案—>session

Session 是服务器技术,利用这个技术服务器在运行时候可以为每一个用户单独创建一个独享的session文件,由于session为用户浏览器独享,所以用户在访问服务器的web资源时候,可以把各自的数据放在各自的session中,当用户再去访问服务器中的web资源时,其他web资源再从用户各自的session中取出数据为用户服务

  • 默认情况下session文件将被保存在c:/window/temp

session 初步介绍

  • ①session是服务器端技术
  • ②原理
    image
  • ③ session的基本用法(curd)增删查改
  • 3.1 如何保存session数据
    修改session保存位置
    image
  • ④ 注意一个会话对应一个session文件

代码:

<?php
	header("content-type:text/html;charset=utf-8");
	echo "<br/>***演示如何保存session数据***<br/>";
//	1、初始化session
	session_start();
//	2、保存数据
	$_SESSION['name']="qb";
	echo "保存ok!";

保存的格式:

name|s:2:"qb";  

以上

字段含义
name表示key
s表示类型
2表示数据大小
qb表示值

保存各种类型session

<?php
	header("content-type:text/html;charset=utf-8");
	echo "<br/>***演示如何保存session数据***<br/>";
//	1、初始化session
	session_start();
//	2、保存数据
	$_SESSION['name']="qb";
	//session 可以保存所有的数据类型   比如 double ,Integer ,boolean ,array ,object 都可以
	$_SESSION['age']=100;//保存int
	$_SESSION['isBoy']=true;//保存boolean
	//保存数组
	$arr1 = array("北京","小明","hello",101);
	$_SESSION['arr1'] = $arr1;
	//保存一个对象
	class  Dog{
		public $dogname;
		public $sex;
	}
	$dog = new Dog();
	$dog->dogname="小宝";
	$dog->sex="公";
	$_SESSION['dog'] = $dog;
	echo "保存ok!";

保存后session结构

name|s:2:"qb";age|i:100;isBoy|b:1;arr1|a:4:{i:0;s:6:"北京";i:1;s:6:"小明";i:2;s:5:"hello";i:3;i:101;}dog|O:3:"Dog":2:{s:7:"dogname";s:6:"小宝";s:3:"sex";s:3:"公";}

由上可以看出session中保存的数据类型
String , integer ,double,bool ,array , object

如何获取session数据

小结:

  • 1、如果需要使用session,必须要初始化
    即session_start();
  • 2、session文件中可以放入多个键值对,注意,键不能重复
  • 3、如果我们要取出对象,则事先声明下就好
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

有时有晌

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值