二使用PHP本身的對話
PHP 中最令人期待的特性應該是對對話的支持PHP 的用戶必須使用第三方的軟件否則就不能使用對話不支持對話一直是PHP最大的缺憾之一
只要用戶在浏覽你的網站你就可以利用對話維護與特定用戶有關的變量而無需建立多個cookie使用隱藏表格字段或將信息存儲在數據庫中
在一個網頁上啟動一個對話就會使PHP引擎知道你想啟動一個對話(如果還沒有啟動)或者繼續當前的對話session_start();
啟動一個對話將通過cookie向用戶發送一個識別字符串(例如fbadcccaead)在服務器端會創建一個與識別字符串匹配的臨時文件例如sess_fbadcccaead這個文件中包含注冊的對話變量以及它們的值
用來顯示對話的作用的最常見的例子是訪問計數器啟動PHP模塊確保PHP代碼是文件的第一行在PHP代碼之前不要有空格HTML代碼和其他的代碼因為對話會發送一個頭部因此如果在session_start()之前有空格和HTML代碼就會得到一個出錯信息
<?
// 如果還不存在一個針對某用戶的用戶則啟動一個對話
session_start();
然後注冊一個名字為count的變量
session_reGISter(count);
注冊一個對話變量後只要對話存在名字為count的變量也就存在現在count變量還沒有被賦值如果對它執行加操作它的值就變為了
$count++;
把上述內容綜合在一塊兒如果還沒有啟動一個對話就會啟動一個對話如果不存在一個對話id就為用戶指定一個好了注冊一個名字為$count的變量對$count執行加操作表示用戶已經首次訪問了該網頁
要知道用戶在當前的對話中訪問本頁面的次數只要顯示$count變量的值即可
echo <P>Youve been here $count times</p>;
全部的訪問計數器代碼如下所示
<?
session_start();
session_register(count);
$count++;
echo <P>Youve been here $count times</p>;
?>
如果重新加載上述的腳本文件就會發現變量count的值增加了
還可以在對話中注冊一個數組變量假設我們注冊了一個名字為$faves的變量
$faves = array (chocolatecoffeebeerlinux);
可以象注冊一個簡單變量那樣注冊一個數組變量
session_register(faves);
引用數組變量與引用簡單變量沒有什麼二樣如果一個用戶在網頁上指出在生活中的愛好時可以把他的愛好注冊到一個被稱作$faves的數組變量中然後可以在另一個網頁中很方便地把這些愛好顯示出來
<?
session_start();
echo My user likes:
<ul>;
while (list($v) = each ($faves)) {
echo <li>$v; }
echo </ul>;
?>
然後你就得到了一個關於用戶愛好的清單
對話變量不能被查詢字符串覆蓋也就是說我們不能輸入http:///wwwyourdomaincom/yourscriptphp?count=給注冊變量$count指定一個新值這一點對於安全很重要只能在服務器端的腳本中刪除一個沒有注冊的對話變量
如果要完全刪除一個對話變量首先需要從系統中注銷它
session_unregister(count);
要完全刪除一個對話變量的腳本是非常簡單如下所示
session_destroy();
使用對話變量可以減少訪問數據庫的頻率使代碼更加清晰而且可以減少對用戶發送的cookie的數量它是最簡單的方法了
From:http://tw.wingwit.com/Article/program/PHP/201311/21356.html