天天躁日日躁狠狠躁AV麻豆-天天躁人人躁人人躁狂躁-天天澡夜夜澡人人澡-天天影视香色欲综合网-国产成人女人在线视频观看-国产成人女人视频在线观看

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

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

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

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

session_start();  

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

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

特別注意

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

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

session_start();  

接下來,注冊一個名為count的變量:

session_register('count');  

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

$count++;  

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

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

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

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

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


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

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

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

session_register('faves');  

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

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


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

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

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

要刪除原本注冊過的使用者狀態(tài)變量,你可以使用下面的語法:

session_unregister('count');  

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

session_destroy();  

結(jié)語:

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

php技術(shù)PHP使用者狀態(tài)管理功能的應(yīng)用,轉(zhuǎn)載需保留來源!

鄭重聲明:本文版權(quán)歸原作者所有,轉(zhuǎn)載文章僅為傳播更多信息之目的,如作者信息標(biāo)記有誤,請第一時間聯(lián)系我們修改或刪除,多謝。

主站蜘蛛池模板: 色综合精品无码一区二区三区 | 老妇高潮潮喷到猛进猛出 | 啪啪激情婷婷久久婷婷色五月 | 伊人精品影院一本到综合 | 成人性生交大片免费看金瓶七仙女 | 国产午夜免费视频片夜色 | 男人扒开添女人屁股 | 国产成人高清精品免费观看 | 日本伦理片 中文字幕 | 久久综合网久久综合 | 亚洲精品AV一区午夜福利 | 国产精品成人无码久免费 | 午夜伦4480yy妇女久久 | yellow片在线观看免费观看动漫 | 日韩欧美一级 | 欧美精品九九99久久在观看 | 久久视频在线视频 | 妻中蜜在线播放 | 影音先锋男人资源813. | xiao77唯美清纯| 国产系列视频二区 | 亚洲精品成人无码区一在线观看 | 午夜一区二区三区 | 伊人久久大香线蕉无码麻豆 | 姉调无修版ova国语版 | 717影院理论午夜伦不卡久久 | 美国一级黄色 | 亚洲国产精品一区二区动图 | 动漫美女被羞羞动漫怪物 | 中文字幕 人妻熟女 | 亚洲网站视频在线观看 | 性啪啪chinese东北女人 | 亚洲免费观看视频 | 欧美视频毛片在线播放 | 亚洲色欲色欲WWW在线丝 | 亲爱的妈妈6韩国电影免费观看 | 又黄又爽又无遮挡在线观看免费 | 5G年龄确认我已满18免费 | 99re10久久热| 国产精品一区第二页 | 日本无码毛片久久久九色综合 |