日本国产亚洲-日本国产一区-日本国产一区二区三区-日本韩国欧美一区-日本韩国欧美在线-日本韩国欧美在线观看

當(dāng)前位置:雨林木風(fēng)下載站 > 技術(shù)開發(fā)教程 > 詳細(xì)頁面

PHP腳本的10個(gè)技巧(轉(zhuǎn)自ZDNet) --會(huì)話(Session)用法

PHP腳本的10個(gè)技巧(轉(zhuǎn)自ZDNet) --會(huì)話(Session)用法

更新時(shí)間:2022-05-07 文章作者:未知 信息來源:網(wǎng)絡(luò) 閱讀次數(shù):

會(huì)話用法

PHP 4.0有一個(gè)一直為人所期待的特性,這就是PHP的會(huì)話(session)支持。相比之下,PHP 3.0的用戶則不得不使用第三方的程序庫(kù)或完全不能具備這項(xiàng)功能。缺乏會(huì)話支持能力是PHP最大的缺陷之一,也是它最受人指摘的地方。不過,隨著會(huì)話支持從早期測(cè)試版本的PHP 4.0開始就成為后者的一部分,這個(gè)障礙也蕩然無存了。

有了會(huì)話支持,你就可以在用戶訪問網(wǎng)絡(luò)站點(diǎn)期間維持用戶特定的變量而無須象現(xiàn)在這樣:設(shè)置多個(gè)cookie、使用隱蔽表單域或在你可能經(jīng)常要連結(jié)的一個(gè)數(shù)據(jù)庫(kù)內(nèi)存儲(chǔ)信息等。

在一個(gè)頁面上啟動(dòng)會(huì)話就是告訴PHP引擎:你或是要開始一個(gè)會(huì)話(如果先前沒有)或是繼續(xù)目前的會(huì)話:

session_start();

啟動(dòng)一個(gè)會(huì)話將通過cookie向用戶發(fā)送一個(gè)標(biāo)識(shí)字符串(比如940f8b05a40d5119c030c9c7745aead9);在服務(wù)器端則會(huì)創(chuàng)建一個(gè)與此相匹配的臨時(shí)文件,在以上例子中,其名稱則是這個(gè)樣子:sess_940f8b05a40d5119c030c9c7745aead9。該文件包含了注冊(cè)的會(huì)話變量及其賦值。

用戶訪問計(jì)數(shù)器可謂使用會(huì)話的最常見實(shí)例:

啟動(dòng)你的PHP模塊,保證PHP代碼是文件的第一行:沒有空白、沒有HTML輸出等等。這是因?yàn),?dāng)會(huì)話函數(shù)發(fā)出一個(gè)文件頭的時(shí)候,如果你在session_start()函數(shù)之前發(fā)送了空白或者HTML代碼,系統(tǒng)即會(huì)報(bào)錯(cuò)。

<?
// if a session does not yet exist for this user, start one
session_start();

接下來,注冊(cè)一個(gè)名為count的變量。

session_register('count');

注冊(cè)變量就等于告訴了PHP:只要會(huì)話存在,一個(gè)名叫count的變量也就同時(shí)存在。目前這個(gè)變量還沒有賦值。不過,如果你對(duì)它進(jìn)行加1運(yùn)算的話,該值即可被賦值為1:

$count++;

把以上各行代碼一起考慮,實(shí)際上你已經(jīng)啟動(dòng)了一個(gè)會(huì)話(如果先前沒有)、為某個(gè)用戶分配了會(huì)話id、注冊(cè)了名為count的變量并把$count加1以表示用戶首次訪問頁面:

要顯示用戶在當(dāng)前會(huì)話下訪問頁面的次數(shù),你只要打印出$count的值即可:

echo "<P>You've been here $count times.</p>";

整個(gè)訪問計(jì)數(shù)器代碼如下所示:

<?
session_start();
session_register('count');
$count++;
echo "<P>You've been here $count times.</p>";
?>

如果你重載以上腳本,你可以觀察到計(jì)數(shù)值增加了。有意思吧?

你還可以在會(huì)話中注冊(cè)數(shù)組。假設(shè)你有一個(gè)名為$faves的數(shù)組:

$faves = array ('chocolate','coffee','beer','linux');

你可以象其他單個(gè)變量一樣注冊(cè)該數(shù)組:

session_register('faves');

索引數(shù)組和索引其他單變量沒有什么差別,比如$faves這樣。如果你的用戶想在Web站點(diǎn)的一個(gè)頁面上展示自己的愛好,那么你完全可以把他喜歡的東西注冊(cè)為一個(gè)名為$faves會(huì)話變量,然后你可以在其他頁面上把這些值打印出來:

<?
session_start();
echo "My user likes:
<ul>";

while (list(,$v) = each ($faves)) {
echo "<li>$v"; }

echo "</ul>";
?>

這就是你要得到的:用戶愛好的漂亮列表。

會(huì)話變量不能被查詢字符串所覆蓋,這就是說,你不能鍵入http:///www.yourdomain.com/yourscript.php?count=56 這樣的指令為注冊(cè)會(huì)話變量$count分配新值。這一點(diǎn)對(duì)安全而言是非常重要的:你只能在服務(wù)器端腳本上修改或者刪除(未注冊(cè)的)會(huì)話變量。

如果你想完全刪除某個(gè)會(huì)話變量,你可以從系統(tǒng)中取消注冊(cè)該變量:

session_unregister('count');

徹底刪除某個(gè)會(huì)話,比如按下Logout按鈕就是這樣的例子,那么你可以寫下如下的代碼:

session_destroy();

使用會(huì)話來存儲(chǔ)變量值可以讓我們免于編寫數(shù)據(jù)庫(kù)處理代碼的痛苦,這樣也就不會(huì)過度增加對(duì)系統(tǒng)的負(fù)載,同時(shí)也減少了對(duì)專有數(shù)據(jù)庫(kù)語法的使用范圍,再說,你也不再非得向訪問站點(diǎn)的用戶發(fā)送一大堆cookie了。而現(xiàn)在呢——只需要一個(gè)cookie、一個(gè)變量就全部搞定了,真是一滴水就映出了全部光輝!實(shí)在是不能比這更簡(jiǎn)單的了。

溫馨提示:喜歡本站的話,請(qǐng)收藏一下本站!

本類教程下載

系統(tǒng)下載排行

主站蜘蛛池模板: 日本二区免费一片黄2019 | 高清亚洲综合色成在线播放放 | 亚洲精品字幕一区二区三区 | 成人网在线免费观看 | 亚洲国产成人在线观看 | 九九热精品免费视频 | 亚洲欧美日韩中文字幕在线不卡 | www精品视频 | 国产精品视频久久久 | 日韩欧一级毛片在线播无遮挡 | 亚洲成人黄色片 | 站长推荐国产午夜免费视频 | 欧美插插综合 | 亚洲精品区一区二区三区四 | 在线观看播放视频www | 韩国亚洲伊人久久综合影院 | 一级亚洲 | 91精选在线观看 | 在线国产一区二区三区 | 色亚洲视频 | 久久免费99精品国产自在现线 | 国内精品视频在线播放一区 | 91香蕉视频在线观看 | 婷婷免费高清视频在线观看 | 99国产精品私拍pans大尺度 | 手机福利视频一区二区 | 国产成人91精品 | 欧美xxxxx俄罗斯老妇 | 亚洲狠狠操 | 婷婷草 | 久久久久久久国产精品 | 亚洲欧美日韩高清 | a级毛片高清免费视频 | 98av视频 | 国产男女拍拍拍在线视频 | 欧美高清免费 | 成年人黄国产 | 日韩欧美在线综合网高清 | 性夜影院爽黄a爽免费视 | 国产小视频福利 | 亚洲xxx视频 |