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

當(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)下載排行

主站蜘蛛池模板: 亚洲国产在 | 艹逼片 | 欧美二区三区 | 中文字幕一区二区三区视频在线 | 成年人视频在线观看免费 | 美女三级黄 | 久久国产视频网站 | 91福利精品老师国产自产在线 | 亚洲欧美另类日本久久影院 | 国产日产欧美一区二区三区 | 欧美黄色性视频 | 欧美一级第一免费高清 | 国产午夜精品片一区二区三区 | av片免费大全在线观看不卡 | 青青青在线视频播放 | 永久网站色视频在线观看免费 | 日本一级~片免费永久 | a级粗大硬长爽猛视频免费 a级高清 | 国产一级毛片一区二区三区 | 久久综合色网 | 亚洲欧洲国产精品 | 亚洲在线视频播放 | 国产亚洲美女 | 日本免费看片 | 欧美日韩亚洲一区二区三区在线观看 | 在线观看久草视频 | 日韩精品免费一级视频 | 久久精品国产99国产精品小说 | 久久狠狠一本精品综合网 | 欧美日韩在观看 | 国产精品亚洲综合一区 | 欧美黑人巨大xxxxxfreexxxxx | 国产禁女女网站免费看 | 亚洲 欧美 中文 日韩专区 | 亚洲欧美日本综合一区二区三区 | 久久久国产精品免费 | 国产91亚洲精品 | 亚洲精品一区二区四季 | 在线观看jyzzjyzz| 色天天 | 国产清纯91天堂在线观看 |