中文字幕免费精品_亚洲视频自拍_亚洲综合国产激情另类一区_色综合咪咪久久

php中session使用方法詳解
來源:易賢網 閱讀:997 次 日期:2014-10-20 15:41:57
溫馨提示:易賢網小編為您整理了“php中session使用方法詳解”,方便廣大網友查閱!

session的聲明與使用

session的設置不同于cookie,必須先啟動,在php中必須調用session_start()。session_start()函數的語法格式如下:

bool session_start(void) //創建session,開始一個會話,進行session初始化

注意:session_start()函數之前不能有任何輸出

當第一次訪問網站時,seesion_start()函數就會創建一個唯一的session id,并自動通過http的響應頭,將這個session id保存到客戶端cookie中。同時,也在服務器端創建一個以session id命名的文件,用于保存這個用戶的會話信息。當同一個用戶再次訪問這個網站時,也會自動通過http的請求頭將cookie中保存的seesion id再攜帶過來,這時session_start()函數就不會再去分配一個新的session id,而是在服務器的硬盤中去尋找和這個session id同名的session文件,將這之前為這個用戶保存的會話信息讀出,在當前腳本中應用,達到跟蹤這個用戶的目的。 session以數組的形式使用,如:$_session['session名']

注冊一個會話變量和讀取session

在php中使用session變量,除了要啟動之外,還要經過注冊的過程。注冊和讀取session變量,都要通過訪問$_session數組完成。在$_session關聯數組中的鍵名具有和php中普通變量相同的命名規則。注冊session變量的代碼如下所示:

代碼如下:

<?php

//啟動session的初始化

session_start();

//注冊session變量,賦值為一個用戶的名稱

$_session[username]=skygao;

//注冊session變量,賦值為一個用戶的id

$_session[uid]=1;

?>

執行該腳本后,兩個session變量就會被保存在服務器端的某個文件中,該文件的位置是通過php.ini文件,在session.save_path屬性指定的目錄下。

注銷變量與銷毀session

當使用完一個session變量后,可以將其刪除,當完成一個會話后,也可以將其銷毀。如果用戶退出web系統,就需要為他提供一個注銷的功能,把他的所有信息在服務器中銷毀。銷毀和當前session有關的所有的資料,可以調用session_destroy()函數結束當前的會話,并清空會話中的所有資源。該函數的語法格式如下所示:

bool session_destroy(void) //銷毀和當前session有關的所有資料

該函數并不會釋放和當前session相關的變量,也不會刪除保存在客戶端cookie中的session

id。因為$_session數組和自定義的數組在使用上是相同的,所以我們可以使用unset()函數來釋放在session中注冊的單個變量。如下所示:

unset($_session['鍵名']);

一定要注意,不要使用unset($_session)刪除整個$_session數組,這樣將不能再通過$_session超全局數組注冊變量了。但如果想把某個用戶在session中注冊的所有變量都刪除,可以直接將數組變量$_session賦上一個空數組。如下所示:

$_session=array()

php默認的session是基于cookie的,session

id被服務器存儲在客戶端的cookie中,所以在注銷session時也需要清除cookie中保存的sessionid,而這就必須借助setcookie()函數完成。在php腳本中,可以通過調用session_name()函數獲取session名稱。刪除保存在客戶端cookie中的session

id,代碼如下所示:

代碼如下:

<?php

//判斷cookie中是否存在session id

if(isset($_cookie[session_name()])){

//刪除包含session id的cookie,注意第四個參數一定要和php.ini設置的路徑相同

setcookie(session_name(),'',time()-3600,'/');

}

?>

通過前面的介紹可以總結出,session的注銷過程共需要4個步驟。在下例中,提供完整的四個步驟代碼,運行該腳本就可以關閉session,并銷毀與本次會話有關的所有資源。代碼如下所示:

代碼如下:

<?php

//第一步:開啟session并初始化

session_start();

//第二部:刪除所有session的變量,也可以用unset($_session[xxx])逐個刪除

$_session = array();

//第三部:如果使用基于cookie的session,使用setcookkie()刪除包含session id的cookie

if(isset($_cookie[session_name()])) {

setcookie(session_name(), , time()-42000, /);

}

//第四部:最后徹底銷毀session

session_destroy();

?>

session的phpini配置選項

php.ini文件和session有關的幾個常用配置選項:

session.auto_start = 0 ; 在請求啟動時初始化session

session.cache_expire = 180 ; 設置緩存中的會話文檔在 n 分鐘后過時

session.cookie_lifetime = 0 ; 設置按秒記的cookie的保存時間,相當于設置session的過期時間,為0時表示直到瀏覽器被重啟

session.auto_start=1,這樣就無需每次使用session之前都要調用session_start()不建議使用.但啟用該選項也有一些限制,如果確實啟用了 session.auto_start,則不能將對象放入會話中,因為類定義必須在啟動會話之前加載以在會話中重建對象。

session.cookie_path = / ; cookie的有效路徑

session.cookie_domain = ; cookie的有效域

session.name = phpsessid; 用在cookie里的session的名字

session.save_handler = files ; 用于保存/取回數據的控制方式

session.save_path = /tmp ; 在 save_handler 設為文件時傳給控制器的參數, 這是數據文件將保存的路徑.

session.use_cookies = 1 ; 是否使用cookies

session的垃圾自動回收機制

可以通過session_destroy()函數在頁面中提供一個“退出”按鈕,通過單擊銷毀本次會話。但如果用戶沒有單擊退出按鈕,而是直接關閉瀏覽器,或斷網等情況,在服務器端保存的session文件是不會刪除的。雖然關閉瀏覽器,下次需要重新分配一個新的session id重新登錄,但這只是因為在php.ini中的設置seesion.cookie_lifetime=0,來設定session id在客戶端cookie中的有效限期,以秒為單位指定了發送到瀏覽器的cookie的生命周期。當系統賦予session有效期限后不管瀏覽器是否開啟,session id都會自動消失。而客戶端session id消失服務器端保存的session文件并沒有被刪除。所以沒有被sessoin id引用的服務器端session文件,就成為了“垃圾”。

服務器保存的session文件就是一個普通文本文件,所以都會有文件修改時間。“垃圾回收程序”啟動后就是根據session文件的修改時間,將所有過期的session文件全部刪除。通過在php.ini中設置session.gc_maxlifetime選項來指定一個時間(單位:秒),例如設置該選項值為1440(24分鐘)。“垃圾回收程序”就會在所有session文件中排查,如果有修改時間距離當前系統時間大于1440秒的就將其刪除。

“session垃圾回收程序”是怎樣的啟動機制呢?“垃圾回收程序”是在調用session_start()函數時啟動的。而一個網站有多個腳本,沒有腳本又都要使用session_start()函數開啟會話,又會有很多個用戶同時訪問,這就很可能session_start()函數在1秒內被調用n次,而如果每次都會啟動“session垃圾回收程序”,這樣是很不合理的。可以通過php.ini文件中修改“session.gc_probability和session.gc_divisor”兩個選項,設置啟動垃圾回收程序的概率。會根據“session.gc_probability/session.gc_divisor”公示計算概率,例如選項session.gc_probability=1,而選項session.gc_divisor=100,這樣的概率就是“1/100”,即session_start()函數被調用100次才會有一次可能啟動“垃圾回收程序”。

php.ini中相關的配置

session.cookie_lifetime=0; 關閉瀏覽器相應的cookie文件即被刪除

session.gc_maxlifetime; 設置過期session時間,默認1440秒(24分鐘)

session.gc_probability/session.gc_divisor; 啟動垃圾回收機制的概率(建議值為1/1000——5000)

cookie禁用時通過url傳遞session的id

使用session跟蹤一個用戶,是通過在各個頁面之間傳遞唯一的session id,并通過session id提取這個用戶在服務器中保存的session變量。常見的session id傳送方法有以下兩種。

第一種方法是基于cookie的方式傳遞session id,這種方式更優,但不總是可用, 因為用戶在客戶端可以屏蔽cokie;

第二種方法是通過url參數進行傳遞,直接將session id嵌入到url中去。

在session的實現中通常都是采用cookie的方式,客戶端保存的session id就是一個cookie。當客戶禁用cookie時,session id就不能在cookie中保存,也就不能在頁面之間傳遞,此時session失效。不過php5在linux平臺可以自動檢查cookie狀態,如果客戶端禁用它,則系統自動把session id附加到url上傳送。而使用windows系統作為web服務器則無此功能。

在php中提出了跟蹤session的另一種機制,如果客戶瀏覽器不支持cookie,則php可以重寫客戶請求的url,把session id添加到url信息中。可以手動地在每個超鏈接的url中都加上一個session id,但工作量比較大,不建議使用這種方法。如下所示:

代碼如下:

<?php

//開啟session

session_start();

//在每個url后面附加上參數,變量名為session_name()獲取名稱,值通過session_id()獲取

echo '<a href=demo.php?'.session_name().'='.session_id().'>連接演示</a>';

?>

在使用linux系統做服務器時,則在編輯php時如果使用了–enable-trans-sid配置選項,和運行時選項session.use_trans_sid都被激活,在客戶端禁用cookie時,相對url將被自動修改為包含會話id。如果沒有這么配置,或者使用windows系統作為服務器時,可以使用常量sid。該常量在會話啟動時被定義,如果客戶端沒有發送適當的會話cookie,則sid的格式為session_name=session_id,否則就為一個空字符串。因此可以無條件地將其嵌入到url中去。在下例中使用兩個腳本程序,演示了session id的傳送方法。

<?php

session_start();

$_session[username]=admin;

echo session id:.session_id().<br>;

?>

通過url傳遞session id

在腳本test2.php中,輸出test1.php腳本在session變量中保存的另一個用戶名。又在該頁面中輸出一次session id,通過對比判斷兩個腳本是否使用同一個session id。另外,在開啟或關閉cookie時,注意瀏覽器地址欄中url的變化。代碼如下所示:

代碼如下:

<?php

session_start();

echo $_session[username].< br>;

echo session id:.session_id().<br>;

?>

更多信息請查看IT技術專欄

更多信息請查看網絡編程
易賢網手機網站地址:php中session使用方法詳解
由于各方面情況的不斷調整與變化,易賢網提供的所有考試信息和咨詢回復僅供參考,敬請考生以權威部門公布的正式信息和咨詢為準!

2026上岸·考公考編培訓報班

  • 報班類型
  • 姓名
  • 手機號
  • 驗證碼
關于我們 | 聯系我們 | 人才招聘 | 網站聲明 | 網站幫助 | 非正式的簡要咨詢 | 簡要咨詢須知 | 新媒體/短視頻平臺 | 手機站點 | 投訴建議
工業和信息化部備案號:滇ICP備2023014141號-1 云南省教育廳備案號:云教ICP備0901021 滇公網安備53010202001879號 人力資源服務許可證:(云)人服證字(2023)第0102001523號
云南網警備案專用圖標
聯系電話:0871-65099533/13759567129 獲取招聘考試信息及咨詢關注公眾號:hfpxwx
咨詢QQ:1093837350(9:00—18:00)版權所有:易賢網
云南網警報警專用圖標
中文字幕免费精品_亚洲视频自拍_亚洲综合国产激情另类一区_色综合咪咪久久
国产精品永久免费在线| 国产一区二区在线观看免费播放| 国产欧美综合一区二区三区| 久久伊人免费视频| 亚洲一区精彩视频| 正在播放日韩| 亚洲精品国产无天堂网2021| 国产精品三区www17con| 久久天堂av综合合色| 亚洲一区二区三区欧美| 亚洲国产精品女人久久久| 韩国成人精品a∨在线观看| 国产精品国产三级国产普通话三级 | 国产目拍亚洲精品99久久精品| 欧美国产日韩xxxxx| 久久―日本道色综合久久| 久久精品电影| 日韩网站在线观看| 欧美日韩国产一中文字不卡| 亚洲视频在线二区| 国产精品卡一卡二卡三| 欧美日韩一区免费| 国产欧美日韩激情| 狠狠综合久久| 亚洲日本va午夜在线影院| 一本久道久久久| 亚洲欧美日韩综合| 久久精品五月婷婷| 国产日韩在线播放| 伊人影院久久| 一区二区欧美精品| 久久aⅴ国产紧身牛仔裤| 亚洲女同在线| 久久久久99| 女主播福利一区| 国产精品久久久久久影院8一贰佰 国产精品久久久久久影视 | 欧美精品一区二区三区久久久竹菊| 欧美日韩中文字幕在线| 亚洲国产精品www| 欧美特黄视频| 久久在线精品| 亚洲午夜精品久久久久久app| 日韩亚洲欧美一区| 免费观看欧美在线视频的网站| 亚洲一区二区在线免费观看| aa级大片欧美三级| 亚洲免费影视第一页| 国产精品久在线观看| 在线亚洲电影| 久久综合九色99| 欧美日韩伦理在线免费| 99精品久久久| 久久亚洲春色中文字幕久久久| 激情亚洲成人| 久久福利电影| 国产精品美女视频网站| 香蕉久久久久久久av网站| 欧美精品一区二区三区视频| 国产性色一区二区| 另类天堂视频在线观看| 国产一二三精品| 亚洲天堂网在线观看| 另类av一区二区| 国产字幕视频一区二区| 亚洲一区二区三区777| 免费久久99精品国产自| 亚洲久色影视| 欧美日韩黄色大片| 亚洲黄色av| 久久综合九色九九| 在线观看的日韩av| 欧美日韩日本国产亚洲在线| 亚洲乱码国产乱码精品精天堂 | 亚洲激情成人在线| 午夜精品婷婷| 国产精品一区二区三区成人| 亚洲视频一区二区| 在线播放亚洲| 久久黄金**| 国产一区二区三区在线观看精品| 亚洲午夜伦理| 国产精品欧美日韩一区二区| 一区二区三区偷拍| 欧美日韩中国免费专区在线看| 99热在线精品观看| 欧美日韩精品在线播放| 一区二区激情视频| 久久成人一区二区| 久久av二区| 一区二区三区亚洲| 欧美国产一区二区三区激情无套| 亚洲国产精品久久久久久女王| 欧美日韩免费看| 久久久久久精| 亚洲精品日韩久久| 欧美另类极品videosbest最新版本| 亚洲欧洲精品一区二区三区不卡 | 久久国产精品99精品国产| 国产精品一区二区在线| 久久爱www久久做| 又紧又大又爽精品一区二区| 欧美gay视频| 亚洲影院高清在线| 在线高清一区| 国产精品扒开腿爽爽爽视频| 国产亚洲精品一区二区| 夜夜嗨av一区二区三区网站四季av | 亚洲天堂久久| 国产亚洲欧美一区在线观看| 欧美成人四级电影| 亚洲欧美一区二区三区在线 | 欧美在线观看www| 国产欧美精品日韩精品| 亚洲一区中文字幕在线观看| 裸体女人亚洲精品一区| 亚洲少妇最新在线视频| 国产一区二区三区的电影 | 亚洲午夜在线观看| 国产一区二区精品| 欧美精品系列| 亚洲欧美日韩中文播放| 性久久久久久久久| 国产亚洲精品久久久久动| 欧美freesex交免费视频| 日韩图片一区| 好吊色欧美一区二区三区四区| 免费亚洲电影在线| 久久精品首页| 香蕉免费一区二区三区在线观看| 亚洲激情在线观看视频免费| 国产精品免费区二区三区观看| 久久久福利视频| 亚洲女人天堂成人av在线| 亚洲三级性片| 亚洲黑丝在线| 亚洲电影在线看| 欧美日韩激情小视频| 免费观看久久久4p| 久久国产主播精品| 欧美一区2区三区4区公司二百| 亚洲线精品一区二区三区八戒| 亚洲电影激情视频网站| 亚洲国产精品成人精品| 黄色欧美成人| 在线免费不卡视频| 国际精品欧美精品| 久久综合图片| 久久精品国产v日韩v亚洲 | 亚洲高清色综合| 午夜精品福利一区二区三区av| 另类av一区二区| 国产视频一区欧美| 夜夜爽99久久国产综合精品女不卡 | 欧美日韩福利| 激情六月婷婷综合| 欧美一区二区三区免费观看| 欧美日韩一区三区四区| 亚洲国内精品| 久久亚洲综合网| 国产日韩欧美综合| 亚洲视频在线视频| 欧美精品久久久久久久免费观看 | 欧美一区成人| 欧美日韩精品免费| 亚洲国产裸拍裸体视频在线观看乱了中文 | 欧美精品日韩三级| 在线成人亚洲| 久久久精品国产99久久精品芒果| 国产精品高潮久久| 国产老女人精品毛片久久| 亚洲午夜国产成人av电影男同| 欧美日本不卡高清| 亚洲国产精品999| 欧美大片第1页| 一区二区三区在线观看欧美| 久久精品免费| 亚洲第一区中文99精品| 欧美激情四色 | 国产日本亚洲高清| 亚洲视频中文字幕| 欧美午夜精品伦理| 一本色道久久88综合亚洲精品ⅰ | 欧美区高清在线| 国产亚洲免费的视频看| 亚洲一区中文字幕在线观看| 国产精品国产三级国产专区53| 亚洲天堂网在线观看| 欧美黄色大片网站| 亚洲精品免费在线观看| 欧美日韩精品一本二本三本| 亚洲在线一区| 一区在线免费| 欧美视频一区二区三区四区| 亚洲综合欧美日韩| 伊人久久大香线| 欧美亚韩一区| 另类激情亚洲| 亚洲一区bb| 精久久久久久| 欧美区日韩区|