PHP中Session的概念

來源:互聯網
上載者:User

什麼是Session呢?Session直接翻譯成中文比較困難,一般都譯成時域。在電腦專業術語中,Session是指一個終端使用者與互動系統進行通訊的時間間隔,通常指從註冊進入系統到登出退出系統之間所經過的時間。具體到Web中的Session指的就是使用者在瀏覽某個網站時,從進入網站到瀏覽器關閉所經過的這段時間,也就是使用者瀏覽這個網站所花費的時間。因此從上述的定義中我們可以看到,Session實際上是一個特定的時間概念。
需要注意的是,一個Session的概念需要包括特定的用戶端,特定的伺服器端以及不中斷的操作時間。A使用者和C伺服器建立串連時所處的Session同B使用者和C伺服器中建立串連時所處的Sessions是兩個不同的Session。
那什麼是Session的解決方案呢?我們知道,使用者訪問一個網站時往往需要瀏覽許多網頁。對於一個通過PHP構築的網站來說,使用者在訪問的過程中需要執行許多的PHP指令碼。然而由於HTTP協議自身的特點,使用者每執行一個PHP指令碼都需要和Web伺服器重建立立串連。又由於無狀態記憶的特點,此次串連無法得到上次串連的狀態。這樣,使用者在一個PHP指令碼中對一個變數進行了賦值操作,而在另外一個PHP指令碼中卻無法得到這個變數的值。例如,使用者在負責登入的PHP指令碼中設定了$user="wind",卻無法在另一個PHP指令碼中通過調用$user來獲得“wind”這個值。也就是說,在PHP中無法設定全域變數。每個PHP指令碼中所定義的變數都是只在這個指令碼內有效局部變數。
Session解決方案,就是要提供在PHP指令碼中定義全域變數的方法,使得這個全域變數在同一個Session中對於所有的PHP指令碼都有效。上面我們提到了,Session不是一個簡單的時間概念,一個Session中還包括了特定的使用者和伺服器。因此更詳細地講,在一個Session定義的全域變數的作用範圍,是指這個Session所對應的使用者所訪問的所有PHP。
例如A使用者通過Session定義了一個全域變數$user=“wind”中,而B使用者通過Session定義的全域變數$user=“jane”。那麼在A使用者所訪問的PHP指令碼中,$user的值就是wind。

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.