国产成人精品久久免费动漫-国产成人精品天堂-国产成人精品区在线观看-国产成人精品日本-a级毛片无码免费真人-a级毛片毛片免费观看久潮喷

您的位置:首頁技術文章
文章詳情頁

PHP使用者狀態管理功能的應用

瀏覽:2日期:2023-12-22 14:27:15
使用者狀態管理(session support)是 PHP 4.0 一個讓大家期待已久的新功能。在 PHP 3.0 的時代,程序設計員必須使用其它人寫好的函式庫來實作狀態管理功能,或者就干脆放棄這項功能不用算了。而狀態管理功能的缺乏事實上是 PHP 3.0 最讓人感到失望的地方之一。不過現在狀況已經得到改變,從 PHP 4.0 的早期測試版開始,使用者狀態管理便已經成為 PHP 內建的功能之一了。 你可以使用狀態管理功能來管理使用者從進入網站開始一直到離開網站為止這段期間內的所有相關變量(只要使用者沒有離開網站,那么這些變量就都可以取用,不會因為使用者離開某個單一頁面而造成資料消失),而不需要儲存許多cookie 或者使用隱藏窗體字段,甚至將這些變量儲存在數據庫里面,造成數據庫服務器的大量負荷。 一旦你在網站中的某一頁激活狀態管理,PHP 引擎便會開始紀錄使用者狀態(如果對這個使用者來說系統還沒開始紀錄該訪問者的狀態的話),或者繼續紀錄某個先前已經激活的使用者狀態。要激活 PHP 的狀態管理功能,你可以使用下面這個語法: session_start();;;一旦激活狀態管理,PHP 會通過 cookie 傳送一個獨一無二的狀態代碼(這個代碼看起來會像是:940f8b05a40d5119c030c9c7745aead9)給使用者,同時在服務器這端,PHP 引擎會自動產生一個檔名與狀態代碼相對應的暫存文本文件(如:sess_940f8b05a40d5119c030c9c7745aead9),該檔案會用來儲存程序設計員在這個使用者狀態紀錄中所注冊的所有變量。 談到使用者狀態管理,最常使用的例子便是一個頁面存取計數器(access counter)了:現在我就開始教大家撰寫 PHP 程序代碼。 特別注意 在你嘗試激活使用者狀態紀錄之前,千萬不能夠輸出任何內容(不能有空格,TAB 甚至換行等等空格符,也不能有任何 HTML 卷標,任何內容都不行)給瀏覽器。這是因為狀態管理相關函數會送出 HTTP 表頭(header)信息給瀏覽器,如果在送出 HTTP 表頭信息給瀏覽器之前已經有其它內容被輸出的話,系統將會出現錯誤訊息。 如果該使用者的狀態管理尚未被激活的話,下面這行程序便會激活該使用者的狀態管理: session_start();;;接下來,注冊一個名為count的變量: session_register('count');;;一旦你注冊了一個變量,PHP 便會在從使用者進入網站一直到離開網站的整個瀏覽過程中自動替你維護這個變量的值,你可以隨時取用這些注冊過的變量。剛注冊好的變量并沒有指定任何值給它,不過一旦我們增加 count 變量的值,它的值便會是 1 了: $count++;;;把這些程序代碼組合起來,我們的程序代碼就會做下面這些事情了:激活使用者狀態紀錄功能(如果對該使用者而言尚未激活的話),指定一個獨一無二的狀態代碼(session id)給該使用者,注冊一個名為 count 的變量,并且在每次使用者瀏覽到該頁面的時候,將變量 $count 的值加一,這個值就可以用來記錄該使用者瀏覽過該頁面的次數了。 如果要將使用者這次的瀏覽歷程中觀看了該頁面多少次,我們只需要將變量$count 的值列印出來就行了: echo "<P>您已經瀏覽這個頁面$count 次了。</p>";;;完整的頁面瀏覽計數器程序代碼看起來就像這樣: <?session_start();session_register('count');$count++;echo "<P>您已經瀏覽這個頁面 $count 次了。</p>";?> 如果你不斷重新加載這個頁面,你會發現畫面上顯示的瀏覽次數會不斷的增加。除了注冊單純的變量以外,我們也可以注冊一個數組(array)到使用者狀態紀錄中。假設我們有下面這個名為 $faves 的數組: $faves = array ('古典音樂','旅游','唱歌','Linux');;;注冊數組的做法和注冊其它單純變量是完全一樣的: session_register('faves');;;注冊完成數組以后,在往后的程序代碼里面要參照到該數組的做法也沒有任何不同,只要單純地叫用 $faves 這個變量就行了。假設你的使用者在網站中某個頁面窗體里頭選擇了一些他所喜歡的東西,而且你將這些項目通過 $faves 數組注冊到該使用者的狀態紀錄里面,那么在網站中其它頁面你可以很容易地把這些項目顯示在畫面上: <?session_start();echo "我的訪客喜歡的東西是:<ul>"while (list($v) = each ($faves)) {echo "<li>$v</li>"} echo "</ul>";?> 就這么輕輕松松的,你就可以把訪客喜歡的東西顯示在網頁上了。 使用者狀態紀錄所注冊的變量是無法用查詢字符串(query string)來蓋過的,比方說,使用者無法直接在瀏覽器的地址列輸入下面的 URL: http:///www.yourdomain.com/yourscript.php?count=56 來企圖蓋過原本注冊在使用者狀態紀錄中的 $count 變量的值。這是一個非常重要的安全觀念:只有你自己能夠在你的程序里面注冊或者刪除使用者狀態紀錄中的變量,其它使用者無法通過 URL 后面的查詢字符串企圖混淆這些變量的值。 要刪除原本注冊過的使用者狀態變量,你可以使用下面的語法: session_unregister('count');;;要將整個使用者狀態紀錄變量全部刪除并且停止紀錄,請使用下面的語法: session_destroy();;;結語: 適當地善用使用者狀態紀錄功能的好處多多:它可以讓我們不須將使用者狀態資料儲存在數據庫中,減少數據庫服務器的負荷。它也可以讓我們不需要自己撰寫長長的程序代碼來通過 cookie 紀錄這些使用者狀態變量(而且,這樣一來我們也不用在網站的隱私權聲明里頭花上很長的篇幅來解釋為什么當使用者登入網站的時候,我們要儲存五十個 cookie 到他們的硬盤里面去了)。這項功能讓我們只需要一個 cookie 來儲存一個變量(session id)就行了,其它所有的信息都通過一個精巧無比的機制來幫我們紀錄,讓我們的工作變得再簡單不過了!
標簽: PHP
主站蜘蛛池模板: 91精品免费国产高清在线 | 性欧美videos高清精品 | 欧美一级在线播放 | 国产色啪午夜免费视频 | 黄色毛片播放 | 国产大片线上免费看 | 久久99精品久久久久久野外 | 99久久99久久久99精品齐 | 99国产视频| 一级a性色生活片久久毛片 一级a做爰片欧欧美毛片4 | 国产成在线观看免费视频成本人 | 国产亚洲精品hd网站 | 午夜成人在线视频 | 国产精品所毛片视频 | 国产精品自拍在线观看 | 国内成人自拍 | 日本三本道 | 色噜噜狠狠大色综合 | 欧美天堂 | 精品一久久香蕉国产线看观 | 欧美高清不卡 | 日韩一级视频 | 国产一级毛片视频在线! | 国产乱子精品免费视观看片 | 99久久免费看精品国产一区 | 狼人 成人 综合 亚洲 | 亚洲美女在线观看播放 | 欧美一级网| 日韩在线播放视频 | 欧美日韩精品一区二区视频在线观看 | 精品久久久久中文字幕日本 | 草草影音 | 欧美一区二区三区视频在线观看 | 欧美午夜精品一区二区三区 | 国产精品9999久久久久 | 国内久久久久影院精品 | 欧洲免费无线码一二区 | 日本人成在线视频免费播放 | 精品视频一区在线观看 | 久久久久久久久性潮 | 久久高清影院 |