国产av日韩一区二区三区精品,成人性爱视频在线观看,国产,欧美,日韩,一区,www.成色av久久成人,2222eeee成人天堂

首頁 后端開發(fā) php教程 PHP使用者狀態(tài)管理功能的應(yīng)用_PHP教程

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

Jul 21, 2016 pm 04:09 PM
php session 使用者 功能 應(yīng)用 狀態(tài) 管理

使用者狀態(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ì)錄,讓我們的工作變得再簡單不過了!

www.bkjia.comtruehttp://www.bkjia.com/PHPjc/314391.htmlTechArticle使用者狀態(tài)管理(session support)是 PHP 4.0 一個讓大家期待已久的新功能。在 PHP 3.0 的時代,程序設(shè)計(jì)員必須使用其它人寫好的函式庫來實(shí)作...
本站聲明
本文內(nèi)容由網(wǎng)友自發(fā)貢獻(xiàn),版權(quán)歸原作者所有,本站不承擔(dān)相應(yīng)法律責(zé)任。如您發(fā)現(xiàn)有涉嫌抄襲侵權(quán)的內(nèi)容,請聯(lián)系admin@php.cn

熱AI工具

Undress AI Tool

Undress AI Tool

免費(fèi)脫衣服圖片

Undresser.AI Undress

Undresser.AI Undress

人工智能驅(qū)動的應(yīng)用程序,用于創(chuàng)建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用于從照片中去除衣服的在線人工智能工具。

Clothoff.io

Clothoff.io

AI脫衣機(jī)

Video Face Swap

Video Face Swap

使用我們完全免費(fèi)的人工智能換臉工具輕松在任何視頻中換臉!

熱工具

記事本++7.3.1

記事本++7.3.1

好用且免費(fèi)的代碼編輯器

SublimeText3漢化版

SublimeText3漢化版

中文版,非常好用

禪工作室 13.0.1

禪工作室 13.0.1

功能強(qiáng)大的PHP集成開發(fā)環(huán)境

Dreamweaver CS6

Dreamweaver CS6

視覺化網(wǎng)頁開發(fā)工具

SublimeText3 Mac版

SublimeText3 Mac版

神級代碼編輯軟件(SublimeText3)

為什么我們評論:PHP指南 為什么我們評論:PHP指南 Jul 15, 2025 am 02:48 AM

PHPhasthreecommentstyles://,#forsingle-lineand/.../formulti-line.Usecommentstoexplainwhycodeexists,notwhatitdoes.MarkTODO/FIXMEitemsanddisablecodetemporarilyduringdebugging.Avoidover-commentingsimplelogic.Writeconcise,grammaticallycorrectcommentsandu

如何在Windows上安裝PHP 如何在Windows上安裝PHP Jul 15, 2025 am 02:46 AM

安裝PHP在Windows上的關(guān)鍵步驟包括:1.下載合適的PHP版本并解壓,推薦使用ThreadSafe版本配合Apache或NonThreadSafe版本配合Nginx;2.配置php.ini文件,將php.ini-development或php.ini-production重命名為php.ini;3.將PHP路徑添加到系統(tǒng)環(huán)境變量Path中以便命令行使用;4.測試PHP是否安裝成功,通過命令行執(zhí)行php-v和運(yùn)行內(nèi)置服務(wù)器測試解析能力;5.若使用Apache,需在httpd.conf中配置P

PHP語法:基礎(chǔ)知識 PHP語法:基礎(chǔ)知識 Jul 15, 2025 am 02:46 AM

PHP的基礎(chǔ)語法包括四個關(guān)鍵點(diǎn):1.PHP標(biāo)簽必須使用結(jié)束,推薦使用完整標(biāo)簽;2.輸出內(nèi)容常用echo和print,其中echo支持多參數(shù)且效率更高;3.注釋方式有//、#和//,用于提升代碼可讀性;4.每條語句必須以分號結(jié)尾,空格和換行不影響執(zhí)行但影響可讀性。掌握這些基本規(guī)則有助于寫出清晰穩(wěn)定的PHP代碼。

python如果還有示例 python如果還有示例 Jul 15, 2025 am 02:55 AM

寫Python的ifelse語句關(guān)鍵在于理解邏輯結(jié)構(gòu)與細(xì)節(jié)。1.基礎(chǔ)結(jié)構(gòu)是if條件成立執(zhí)行一段代碼,否則執(zhí)行else部分,else可選;2.多條件判斷用elif實(shí)現(xiàn),順序執(zhí)行且一旦滿足即停止;3.嵌套if用于進(jìn)一步細(xì)分判斷,建議不超過兩層;4.簡潔場景可用三元表達(dá)式替代簡單ifelse。注意縮進(jìn)、條件順序及邏輯完整性,才能寫出清晰穩(wěn)定的判斷代碼。

PHP 8安裝指南 PHP 8安裝指南 Jul 16, 2025 am 03:41 AM

在Ubuntu上安裝PHP8的步驟為:1.更新軟件包列表;2.安裝PHP8及基礎(chǔ)組件;3.檢查版本確認(rèn)安裝成功;4.按需安裝額外模塊。Windows用戶可下載ZIP包并解壓,隨后修改配置文件、啟用擴(kuò)展并將路徑加入環(huán)境變量。macOS用戶推薦使用Homebrew安裝,依次執(zhí)行添加tap、安裝PHP8、設(shè)置默認(rèn)版本及驗(yàn)證版本等步驟。不同系統(tǒng)下安裝方式雖有差異,但流程清晰,根據(jù)用途選對方法即可。

什么是PHP,它是用什么? 什么是PHP,它是用什么? Jul 16, 2025 am 03:45 AM

PHPisaserver-sidescriptinglanguageusedforwebdevelopment,especiallyfordynamicwebsitesandCMSplatformslikeWordPress.Itrunsontheserver,processesdata,interactswithdatabases,andsendsHTMLtobrowsers.Commonusesincludeuserauthentication,e-commerceplatforms,for

您的第一個PHP腳本:實(shí)用介紹 您的第一個PHP腳本:實(shí)用介紹 Jul 16, 2025 am 03:42 AM

如何開始編寫第一個PHP腳本?首先設(shè)置本地開發(fā)環(huán)境,安裝XAMPP/MAMP/LAMP,使用文本編輯器,了解服務(wù)器運(yùn)行原理。其次,創(chuàng)建一個名為hello.php的文件,輸入基本代碼并運(yùn)行測試。第三,學(xué)習(xí)混合使用PHP與HTML以實(shí)現(xiàn)動態(tài)內(nèi)容輸出。最后,注意常見錯誤如缺少分號、引用問題及文件擴(kuò)展名錯誤,并開啟錯誤報(bào)告以便調(diào)試。

您如何處理PHP中的文件操作(閱讀/寫作)? 您如何處理PHP中的文件操作(閱讀/寫作)? Jul 16, 2025 am 03:48 AM

tohandlefileoperationsinphp,useApprepreprunctions andModes.1.toreadafile,usefile_get_contents()forsmallfilesorfgets()inaloopforline by line-line-processing.2.towriteToafile,usefile_put_cte_contents(usefile_contents)(

See all articles