淺析關于cookie和session(2)_PHP教程
推薦:PHP5中的this,self和parent關鍵字詳解PHP5是一具備了大部分面向對象語言的特性的語言,比PHP4有了很多的面向對象的特性,但是有部分概念也比較繞人,所以今天拿出來說說,說的不好,請高手見諒. (閱讀本文,需要了解PHP5的面向對象
2.1.1 通過cookie傳送sessin ID
使用session_start()調用session,服務器端在生成session文件的同時,生成session ID哈希值和默認值為PHPSESSID的session name,并向客戶端發送變量為(默認的是)PHPSESSID(session name),值為一個128位的哈希值.服務器端將通過該cookie與客戶端進行交互.
session變量的值經php內部系列化后保存在服務器機器上的文本文件中,和客戶端的變量名默認情況下為PHPSESSID的coolie進行對應交互.
即服務器自動發送了http頭:header('Set-Cookie: session_name()=session_id(); path=/');
即setcookie(session_name(),session_id());
當從該頁跳轉到的新頁面并調用session_start()后,PHP將檢查與給定ID相關聯的服務器端存貯的session數據,如果沒找到,則新建一個數據集.
2.1.2 通過URL傳送session ID
只有在用戶禁止使用cookie的時候才用這種方法,因為瀏覽器cookie已經通用,為安全起見,可不用該方法.
<a href="p.php?<?php print session_name() ?>=<?php print session_id() ?>">xxx</a>,也可以通過POST來傳遞session值.
2.2 session基本用法實例
|
以下為引用的內容: <?php // 如果客戶端使用cookie,可直接傳遞session到page2.php // 如果客戶端禁用cookie <?php |
2.3 使用session函數控制頁面緩存.
很多情況下,我們要確定我們的網頁是否在客戶端緩存,或要設置緩存的有效時間,比如我們的網頁上有些敏感內容并且要登錄才能查看,如果緩存到本地了,可以直接打開本地的緩存就可以不登錄而瀏覽到網頁了.
使用session_cache_limiter('private');可以控制頁面客戶端緩存,必須在session_start()之前調用.
更多參數見http://blog.chinaunix.net/u/27731/showart.php?id=258087的客戶端緩存控制.
控制客戶端緩存時間用 session_cache_expire(int);單位(s).也要在session_start()前調用.
分享:解析PHP安全編程的加密功能預備知識 在詳細介紹PHP的安全功能之前,我們需要花 點時間來向沒有接觸過這方面內容的讀者介紹一些有關密碼學的基本知識,如果對密碼學的基本概念已經非常熟悉,就可以跳過去這一部分
- 相關鏈接:
- 教程說明:
PHP教程-淺析關于cookie和session(2)
。