六月婷婷综合激情-六月婷婷综合-六月婷婷在线观看-六月婷婷在线-亚洲黄色在线网站-亚洲黄色在线观看网站

明輝手游網(wǎng)中心:是一個(gè)免費(fèi)提供流行視頻軟件教程、在線學(xué)習(xí)分享的學(xué)習(xí)平臺(tái)!

PHP使用者狀態(tài)管理技巧的應(yīng)用

[摘要]使用者狀態(tài)管理(session support)是 PHP 4.0 一個(gè)讓大家期待已久的新功能。在 PHP 3.0 的時(shí)代,程序設(shè)計(jì)員必須使用其它人寫好的函式庫(kù)來(lái)實(shí)作狀態(tài)管理功能,或者就干脆放棄這項(xiàng)功能不用算了。而狀態(tài)管理功能的缺乏事實(shí)上是 PHP 3.0 最讓人感到失望的地方之一。不過(guò)現(xiàn)在狀況已...
使用者狀態(tài)管理(session support)是 PHP 4.0 一個(gè)讓大家期待已久的新功能。在 PHP 3.0 的時(shí)代,程序設(shè)計(jì)員必須使用其它人寫好的函式庫(kù)來(lái)實(shí)作狀態(tài)管理功能,或者就干脆放棄這項(xiàng)功能不用算了。而狀態(tài)管理功能的缺乏事實(shí)上是 PHP 3.0 最讓人感到失望的地方之一。不過(guò)現(xiàn)在狀況已經(jīng)得到改變,從 PHP 4.0 的早期測(cè)試版開始,使用者狀態(tài)管理便已經(jīng)成為 PHP 內(nèi)建的功能之一了。

你可以使用狀態(tài)管理功能來(lái)管理使用者從進(jìn)入網(wǎng)站開始一直到離開網(wǎng)站為止這段期間內(nèi)的所有相關(guān)變量(只要使用者沒(méi)有離開網(wǎng)站,那么這些變量就都可以取用,不會(huì)因?yàn)槭褂谜唠x開某個(gè)單一頁(yè)面而造成資料消失),而不需要儲(chǔ)存許多cookie 或者使用隱藏窗體字段,甚至將這些變量?jī)?chǔ)存在數(shù)據(jù)庫(kù)里面,造成數(shù)據(jù)庫(kù)服務(wù)器的大量負(fù)荷。

一旦你在網(wǎng)站中的某一頁(yè)激活狀態(tài)管理,PHP 引擎便會(huì)開始紀(jì)錄使用者狀態(tài)(如果對(duì)這個(gè)使用者來(lái)說(shuō)系統(tǒng)還沒(méi)開始紀(jì)錄該訪問(wèn)者的狀態(tài)的話),或者繼續(xù)紀(jì)錄某個(gè)先前已經(jīng)激活的使用者狀態(tài)。要激活 PHP 的狀態(tài)管理功能,你可以使用下面這個(gè)語(yǔ)法:

session_start();  

一旦激活狀態(tài)管理,PHP 會(huì)通過(guò) cookie 傳送一個(gè)獨(dú)一無(wú)二的狀態(tài)代碼(這個(gè)代碼看起來(lái)會(huì)像是:940f8b05a40d5119c030c9c7745aead9)給使用者,同時(shí)在服務(wù)器這端,PHP 引擎會(huì)自動(dòng)產(chǎn)生一個(gè)檔名與狀態(tài)代碼相對(duì)應(yīng)的暫存文本文件(如:sess_940f8b05a40d5119c030c9c7745aead9),該檔案會(huì)用來(lái)儲(chǔ)存程序設(shè)計(jì)員在這個(gè)使用者狀態(tài)紀(jì)錄中所注冊(cè)的所有變量。

談到使用者狀態(tài)管理,最常使用的例子便是一個(gè)頁(yè)面存取計(jì)數(shù)器(access counter)了:現(xiàn)在我就開始教大家撰寫 PHP 程序代碼。

特別注意

在你嘗試激活使用者狀態(tài)紀(jì)錄之前,千萬(wàn)不能夠輸出任何內(nèi)容(不能有空格,TAB 甚至換行等等空格符,也不能有任何 HTML 卷標(biāo),任何內(nèi)容都不行)給瀏覽器。這是因?yàn)闋顟B(tài)管理相關(guān)函數(shù)會(huì)送出 HTTP 表頭(header)信息給瀏覽器,如果在送出 HTTP 表頭信息給瀏覽器之前已經(jīng)有其它內(nèi)容被輸出的話,系統(tǒng)將會(huì)出現(xiàn)錯(cuò)誤訊息。

如果該使用者的狀態(tài)管理尚未被激活的話,下面這行程序便會(huì)激活該使用者的狀態(tài)管理:

session_start();  

接下來(lái),注冊(cè)一個(gè)名為count的變量:

session_register('count');  

一旦你注冊(cè)了一個(gè)變量,PHP 便會(huì)在從使用者進(jìn)入網(wǎng)站一直到離開網(wǎng)站的整個(gè)瀏覽過(guò)程中自動(dòng)替你維護(hù)這個(gè)變量的值,你可以隨時(shí)取用這些注冊(cè)過(guò)的變量。剛注冊(cè)好的變量并沒(méi)有指定任何值給它,不過(guò)一旦我們?cè)黾?count 變量的值,它的值便會(huì)是 1 了:

$count++;  

把這些程序代碼組合起來(lái),我們的程序代碼就會(huì)做下面這些事情了:激活使用者狀態(tài)紀(jì)錄功能(如果對(duì)該使用者而言尚未激活的話),指定一個(gè)獨(dú)一無(wú)二的狀態(tài)代碼(session id)給該使用者,注冊(cè)一個(gè)名為 count 的變量,并且在每次使用者瀏覽到該頁(yè)面的時(shí)候,將變量 $count 的值加一,這個(gè)值就可以用來(lái)記錄該使用者瀏覽過(guò)該頁(yè)面的次數(shù)了。

如果要將使用者這次的瀏覽歷程中觀看了該頁(yè)面多少次,我們只需要將變量$count 的值列印出來(lái)就行了:

echo "<P>您已經(jīng)瀏覽這個(gè)頁(yè)面$count 次了。</p>";  

完整的頁(yè)面瀏覽計(jì)數(shù)器程序代碼看起來(lái)就像這樣:

<?session_start();
session_register('count');
$count++;
echo "<P>您已經(jīng)瀏覽這個(gè)頁(yè)面 $count 次了。</p>";
?>


如果你不斷重新加載這個(gè)頁(yè)面,你會(huì)發(fā)現(xiàn)畫面上顯示的瀏覽次數(shù)會(huì)不斷的增加。除了注冊(cè)單純的變量以外,我們也可以注冊(cè)一個(gè)數(shù)組(array)到使用者狀態(tài)紀(jì)錄中。假設(shè)我們有下面這個(gè)名為 $faves 的數(shù)組:

$faves = array ('古典音樂(lè)','旅游','唱歌','Linux');  

注冊(cè)數(shù)組的做法和注冊(cè)其它單純變量是完全一樣的:

session_register('faves');  

注冊(cè)完成數(shù)組以后,在往后的程序代碼里面要參照到該數(shù)組的做法也沒(méi)有任何不同,只要單純地叫用 $faves 這個(gè)變量就行了。假設(shè)你的使用者在網(wǎng)站中某個(gè)頁(yè)面窗體里頭選擇了一些他所喜歡的東西,而且你將這些項(xiàng)目通過(guò) $faves 數(shù)組注冊(cè)到該使用者的狀態(tài)紀(jì)錄里面,那么在網(wǎng)站中其它頁(yè)面你可以很容易地把這些項(xiàng)目顯示在畫面上:

<?
session_start();
echo "我的訪客喜歡的東西是:<ul>";
while (list($v) = each ($faves)) {
echo "<li>$v</li>"; }
echo "</ul>";
?>


就這么輕輕松松的,你就可以把訪客喜歡的東西顯示在網(wǎng)頁(yè)上了。

使用者狀態(tài)紀(jì)錄所注冊(cè)的變量是無(wú)法用查詢字符串(query string)來(lái)蓋過(guò)的,比方說(shuō),使用者無(wú)法直接在瀏覽器的地址列輸入下面的 URL:

http:///www.yourdomain.com/yourscript.php?count=56 來(lái)企圖蓋過(guò)原本注冊(cè)在使用者狀態(tài)紀(jì)錄中的 $count 變量的值。這是一個(gè)非常重要的安全觀念:只有你自己能夠在你的程序里面注冊(cè)或者刪除使用者狀態(tài)紀(jì)錄中的變量,其它使用者無(wú)法通過(guò) URL 后面的查詢字符串企圖混淆這些變量的值。

要?jiǎng)h除原本注冊(cè)過(guò)的使用者狀態(tài)變量,你可以使用下面的語(yǔ)法:

session_unregister('count');  

要將整個(gè)使用者狀態(tài)紀(jì)錄變量全部刪除并且停止紀(jì)錄,請(qǐng)使用下面的語(yǔ)法:

session_destroy();  

結(jié)語(yǔ):

適當(dāng)?shù)厣朴檬褂谜郀顟B(tài)紀(jì)錄功能的好處多多:它可以讓我們不須將使用者狀態(tài)資料儲(chǔ)存在數(shù)據(jù)庫(kù)中,減少數(shù)據(jù)庫(kù)服務(wù)器的負(fù)荷。它也可以讓我們不需要自己撰寫長(zhǎng)長(zhǎng)的程序代碼來(lái)通過(guò) cookie 紀(jì)錄這些使用者狀態(tài)變量(而且,這樣一來(lái)我們也不用在網(wǎng)站的隱私權(quán)聲明里頭花上很長(zhǎng)的篇幅來(lái)解釋為什么當(dāng)使用者登入網(wǎng)站的時(shí)候,我們要儲(chǔ)存五十個(gè) cookie 到他們的硬盤里面去了)。這項(xiàng)功能讓我們只需要一個(gè) cookie 來(lái)儲(chǔ)存一個(gè)變量(session id)就行了,其它所有的信息都通過(guò)一個(gè)精巧無(wú)比的機(jī)制來(lái)幫我們紀(jì)錄,讓我們的工作變得再簡(jiǎn)單不過(guò)了!




主站蜘蛛池模板: 香蕉久人久人青草青草 | 日本爽爽爽爽爽爽在线观看免 | 日韩射吧 | 特黄aaaaaaaaa及毛片 | 四虎影视免费在线观看 | 日韩视频在线观看免费 | 亚洲成a人片77777老司机 | 亚洲精品免费在线观看 | 欧美一区二区三区日韩免费播 | 四虎看片 | 收集最新中文国产中文字幕 | 欧美特黄一级大黄录像 | 欧美综合视频 | 中文字幕精品波多野结衣 | 午夜视频一区二区 | 亚洲精品91 | 中文字幕一区波多野结衣 | 中文天堂在线最新2022更新 | 性欧美xxxx | 三级黄色网络 | 天天爽天天干 | 午夜视频在线观看免费视频 | 午夜手机视频 | 欧美在线a | 中文字幕日韩在线观看 | 日韩高清第一页 | 亚洲国产资源 | 午夜不卡福利 | 欧美亚洲国产另类 | 四虎永久在线精品国产 | 天天干夜操| 日本高清三区 | 综合久青草视频 | 五月婷婷综合网 | 日本一本二本免费播放视频 | 亚洲第一天堂 | 日本午夜视频在线观看 | 伊人久久大香线蕉资源 | 午夜性伦鲁啊鲁免费视频 | 一级做a爰性色毛片免费 | 午夜亚洲国产精品福利 |