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文件也將被直接刪除