• <label id="pxtpz"><meter id="pxtpz"></meter></label>
      1. <span id="pxtpz"><optgroup id="pxtpz"></optgroup></span>

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

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

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

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

        會話用法

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

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

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

        session_start();

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

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

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

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

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

        session_register('count');

        注冊變量就等于告訴了PHP:只要會話存在,一個名叫count的變量也就同時存在。目前這個變量還沒有賦值。不過,如果你對它進行加1運算的話,該值即可被賦值為1:

        $count++;

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

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

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

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

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

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

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

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

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

        session_register('faves');

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

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

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

        echo "</ul>";
        ?>

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

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

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

        session_unregister('count');

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

        session_destroy();

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

        溫馨提示:喜歡本站的話,請收藏一下本站!

        本類教程下載

        系統(tǒng)下載排行

        主站蜘蛛池模板: 四虎AV永久在线精品免费观看| h视频免费高清在线观看| 亚洲w码欧洲s码免费| 亚洲av日韩av高潮潮喷无码 | 国产精品亚洲专区在线观看 | 成人黄18免费视频| 亚洲伊人久久大香线焦| 国内精品乱码卡1卡2卡3免费| 爱情岛亚洲论坛在线观看| 无码国产精品一区二区免费I6 | 国产情侣激情在线视频免费看| 亚洲三级电影网址| 鲁大师在线影院免费观看| 久久精品国产亚洲香蕉| 黑人粗长大战亚洲女2021国产精品成人免费视频 | 亚洲伊人久久精品| 成视频年人黄网站免费视频| 亚洲AV成人一区二区三区在线看 | 午夜亚洲www湿好大| 久草视频免费在线| 亚洲人成色777777精品| 午夜精品一区二区三区免费视频 | 小说区亚洲自拍另类| 国产亚洲美女精品久久久2020 | 亚洲最大av资源站无码av网址| 国产成人免费高清在线观看| 亚洲国产精品综合久久2007| 18禁成年无码免费网站无遮挡 | 男人都懂www深夜免费网站| 亚洲国产成人精品无码区在线秒播| 久久久久久精品成人免费图片| 亚洲国产午夜精品理论片在线播放 | 日韩精品人妻系列无码专区免费| 久久狠狠爱亚洲综合影院 | 国产亚洲美女精品久久久久狼| 羞羞视频网站免费入口| 亚洲中文字幕无码久久精品1| 24小时免费看片| 深夜a级毛片免费无码| 78成人精品电影在线播放日韩精品电影一区亚洲 | 老湿机一区午夜精品免费福利|