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 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成功"; ?>