Session是服务器端技术,利用这个技术,服务器在运行时可以为每一个用户的浏览器创建一个其独享的session文件,当用户再去访问服务器中的其它web资源时,可以从用户各自的session中取出数据为用户服务。
Session是最重要的用户行为跟踪技术(防止用户非法登录/验证码等)
1.保存session数据
———————-class.php————————————
class Dog {
private $name;
private $age;
private $intro;
function __construct($name,$age,$intro){
$this->name=$name;
$this->age=$age;
$this->intro=$intro;
}
public function getName(){
return $this->name;
}
}
//---------------如何保存session数据--------------------
require_once "class.php";
//1.初始化session
session_start();
//2.保存数据
$_SESSION['name']="Sabrina";
//session文件中可以保存double,int,bool,array,object
$_SESSION['age']=100;
$_SESSION['isBoy']=false;
$arr=array("北京","天津","Hello");
$_SESSION['arr']=$arr;
//保存一个对象到session文件
$dog=new Dog("贝贝",10,"小妹妹");
$_SESSION['dog']=$dog;
echo "保存成功";
得出的网页结果为:
session文档为:
(1)要使用session,都需要初始化session_start();
(2)session文件中可以放入多个键值对,注意key不能重复,val可以是基本数据类型、数组和对象
2.获取session数据
<?php
header("Content-type:text/html;charset=utf-8");
require_once "class.php";
//----------------获取session数据--------------------
session_start();
//获取全部的session
echo "<pre>";
print_r($_SESSION);
echo "</pre>";
//指定获取
echo "<br/>名字是:".$_SESSION["name"];
$arr=$_SESSION['arr'];
foreach($arr as $key=>$val){
echo "<br/>$key=>$val";
}
$sdog=$_SESSION['dog'];
echo "<br>小狗的名字是:".$sdog->getName();
?>
3.更新session数据
session_start();
$_SESSION['name']="Monkey·D·Luffy ";
echo "更新成功";
此时,获取数据时,name值也会更改
4.删除session数据
//删除某一个键值对
session_start();
//unset($_SESSION['name']);
echo "删除成功";
结果如下:
//删除全部
session_start();
session_destroy();//删除当前浏览器对应的session文件
echo "删除成功";
之前的session文件也将被直接删除