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