Session 是服务端技术,利用这个技术,服务器在运行时可以为每一个用户的浏览器创建一个其独享的session文件,由于session为用户浏览器独享,所以用户在访问服务器的web资源时,可以把各自的数据放在各自的session中,当用户再去访问服务器中的其它web资源时(前提会话没有结束),其他web资源再从用户的各自session中取出数据为用户服务。
Session 是最重要的用户行为跟踪技术(防止用户非法登录/验证码等)。
默认情况下session文件被保存在C:/Windows/temp 目录下。
下面是对session的CRUD的操作
1、创建session
<?php
//创建session
//初始化session
session_start();
//保存数据
$_SESSION['name']="pawm";
//session 文件中可以保存dobule,integer,string,bool, array,object
//保存bool integer
$_SESSION['age']=20;
$_SESSION['isBoy']=true;
$_SESSION['arr']=array("北京","张三","xiaoming");
//保存对象到session 中
class Dog{
private $name;
private $age;
private $intro;
public function __construct($name,$age,$intro){
$this->name=$name;
$this->age=$age;
$this->intro=$intro;
}
}
$dog1=new Dog("狗狗",5,"很听话的狗");
$_SESSION['dog1']=$dog1;
echo "保存成功";
?>
要点:
1、保存的数据格式:name|s:4:"pawm";age|i:20;isBoy|b:1;
name:就是key
s:表示数据类型
4:表示数据大小
2、session 中可以保存的数据类型是:dobule,integer,string,bool, array,object
2、取出session
<?php
//取出session
//www.jb200.com
require_once "Dog.class.php";
echo "<pre>";
//使用到session的地方必须要初始化session
session_start();
//取出全部
print_r($_SESSION);
echo "</pre>";
//单个取出
//$name=$_SESSION['name'];
if(!empty($_SESSION['name'])){
echo "名字是:".$_SESSION['name'];
}else{
echo 'name没有了<br>';
}
if(!empty($_SESSION['age'])){
echo "年龄是:".$_SESSION['age']."<br>";;
}else{
echo 'age没有了<br>';
}
//echo $_SESSION['isBoy']; //输出1
if(!empty($_SESSION['arr'])){
$arr=$_SESSION['arr'];
foreach($arr as $key=>$val){
echo "$val";
}
}else{
echo 'arr没有了<br>';
}
echo "<br>";
//取出对象的实例的时候要把类的信息引入进来,不然出现错误
if(!empty($_SESSION['dog1'])){
$dog=$_SESSION['dog1'];
//var_dump($dog);
echo "<br>".$dog->show();
//echo $dog->name;
//echo '名字是'.$name."年龄是".$age;
}else{
echo 'dog没有了<br>';
}
?>
3、更新session
<?php
//更新session
session_start();
//更新name
$_SESSION['name']="小明";
echo "更新成功";
?>
4、删除session
<?php
//删除session
session_start();
//单个删除,删除name
//unset($_SESSION['name']);
//删除全部
session_destroy();
echo "删除session成功";
?>