在PHP配置文件(php.ini)中,有一組與Session相關(guān)的配置選項。通過(guò)對一些選項重新設置新值,就可以對Session進(jìn)行配置,否則使用默認的Session配置。
Session的設置不同于Cookie,必須先啟動(dòng),在PHP中必須調用session_start()函數,以便讓PHP核心程序,將與Session相關(guān)的內建環(huán)境變量預先載入至內存中。session_start()函數的語(yǔ)法格式如下:Bool session_start (void) //創(chuàng )建Session,開(kāi)始一個(gè)會(huì )話(huà),進(jìn)行Session初始化
函數Session_start()有兩個(gè)作用:一是開(kāi)始一個(gè)會(huì )話(huà),二是返回已經(jīng)存在的會(huì )話(huà)。這個(gè)函數沒(méi)有參數,且返回值均為true。
如果使用基于Cookie的Session,在使用該函數開(kāi)啟Session之前,不能有任何輸出的內容。因為基于Cookie的Session是在開(kāi)啟的時(shí)候,調用session_start()函數會(huì )生成一個(gè)唯一的Session ID,需要保存在客戶(hù)端電腦的Cookie中,和set-Cookie()函數一樣,調用之前不能有任何的輸出,空格或空行也不行。如果已經(jīng)開(kāi)啟過(guò)Session,再次調用session_start()函數時(shí),不會(huì )再創(chuàng )建一個(gè)新的Session ID。因為當用戶(hù)再次訪(fǎng)問(wèn)服務(wù)器時(shí),該函數會(huì )通過(guò)從客戶(hù)端攜帶過(guò)來(lái)的Session ID,返回已經(jīng)存在的Session。所以在會(huì )話(huà)期間,同一個(gè)用戶(hù)在訪(fǎng)問(wèn)服務(wù)器上任何一個(gè)頁(yè)面時(shí),都是使用同一個(gè)Session ID。
如果不想在每個(gè)腳本都使用session_start()函數來(lái)開(kāi)啟Session,可以在php.ini中設置“ses-sion.auto_start=1”,則無(wú)須每次使用Session之前都要調用session_start()函數。但啟用該選項也有一些限制,則不能將對象放入Session中,因為類(lèi)定義必須在啟動(dòng)Session之前加載。所以不建議使用php.ini中的session.auto_start屬性來(lái)開(kāi)啟Session。
當前文章標題:?jiǎn)?dòng)會(huì )話(huà)
當前URL:http://amzcoolest.com/news/wzzz/3271.html