標籤:
1、session是伺服器端技術,利用這個技術,伺服器在運行時可以為每個使用者的瀏
覽器建立一個共/獨享的session檔案,由於session為使用者瀏覽器獨享,所以使用者
再去訪問伺服器中的其他web共用資源時,其他web資源再從使用者各自的session中
取出資料為使用者服務
當使用者開啟瀏覽器,訪問某個網站時操作session時,伺服器就會為該瀏覽器分
配一個儲存session資訊的檔案,該檔案被這個瀏覽器獨自訪問
2、細節問題
2.1 預設情況下session檔案將會儲存在c:/window/temp;
2.2 session資料預設1440s(24分鐘)失效;這個失效時間可以通過php的配
置php.ini檔案設定【session.gc_maxlifetime=設定的時間(預設以秒
為單位);】 這個時間也可以成為session的存留時間,它的意思
是session在連續的 1440s內不使用就會失效,但一 旦被使用,這個時間
就會重新從0開始計算
2.3 修改session檔案的存放路徑,在php.ini檔案修改:
;session.save_path="/tmp"的下一行輸入
session.save_path="自訂路徑"【注意這句代碼前不能有分號;appache
重啟才生效】
2.4 在web開發中,伺服器可以為每個使用者瀏覽器建立一個超全域變
量,$_SESSION,注意:一個瀏覽器獨佔一個$_SESSION(預設情況下
)。因此,在需要儲存使用者資料時,伺服器程式可以把使用者資料寫到使用者瀏覽器獨
占的session檔案中,當使用者使用瀏覽器訪問其他php頁面時,其他php頁面可以從
$_SESSION中取出該使用者資料,為使用者服務
3、session的基本用法:
3.1 session必須先初始化才能使用
session_start();
session檔案可以存放多個索引值對key<=>value,但索引值不能相同
如果要擷取的session資料是對象時一定要先聲明一下這個對象的類的信
息
一個會話對應一個session,瀏覽器從開啟到關閉是一個session
3.2如何儲存session資料
<?php
//1、初始化session:
session_start();
//name是索引值key;shunping指value;
$_SESSION[‘name‘]="shunping"; //session檔案中可以儲存
double,integer,
//boolarray,object類型的資料
$_SESSION[‘age‘]=100;//儲存integer bool型
$-SESSION[‘isboy‘]=true;
//儲存;數組
$arr=array(‘beijing‘,‘tianjjing‘,‘nanjing‘);
$_SESSION[‘ARR‘]=$arr;
//儲存一個對象
class Dog{
private $name;
private $age;
private $intro;
function _construct($name,$age,$intro){
$this->name=$name;
$this->age=$age;
$this->intro=$intro;
}
}
$dog=new Dog(‘歡歡‘,‘5‘,‘他是一隻可愛的小狗‘);
$_SESSION[‘MYDOG‘]=$dog;
echo "儲存成功!";
?>
3.3 如何擷取session資料
<?php
//初始化
session_start();
//擷取所有session資料並輸出
print_r($_SESSION);
//通過索引值擷取對應的某個session值
echo $_SESSION[‘索引值‘];
//擷取資料是對象的session資料時一定要先聲明一下類的定義
//先聲明一下類的定義
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;
}
}
$object=$_SESSION[‘索引值‘];
echo $object->getName();
?>
3.4 更新session資料
session_start();
$_SESSION[‘索引值‘]=value;//根據索引值去更新對應的值
3.5 手動刪除session資料
session_start();
//刪除某個索引值對
unset($_SESSION[‘索引值‘]);
//刪除與這個瀏覽器對應的所有session檔案,一個會話對應一個session
,瀏覽器從開啟到關閉是一個session
session_destrory();
3.6 系統刪除session資料
session資料預設1440s(24分鐘)失效;這個失效時間可以通過php的配
置php.ini檔案設定【session.gc_maxlifetime=設定的時間(預設以
秒為單位);】這個時間也可以成為session的存留時間,它的意思
是session在連續的 1440s內不使用就會失效,但一 旦被使用,這個
時間就會重新從0開始計算
4、session與cookie的區別:
4.1 cookie是把使用者的資料寫下使用者的瀏覽器。
4.2 session是把使用者的資料寫在使用者獨佔的$_SESSION中,存在伺服器的某
個路徑
4.3 $在使用$_SESSION前要保證session被初始化,具體的方法有:
4.3.1 先調用session_start();
4.3.2配置php.ini檔案中的 session.auto_start=1(不推薦,會影響效
率);
4.4 伺服器實現,一個session檔案一次會話服務的原理:
5、每個session檔案都有自己的sessionid;所以
5.1 擷取sessionid的方法:$sessionid=session_id();
5.2 設定當前session檔案的sessionid的方法:session_id(“id值”);
5.3 要建立一個自己定義id的session檔案,代碼如下
session_id(“id值”);
session_start();
php-session的使用(學習筆記,僅供參考)