国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

PHP中的會話控制

luoyibu / 1273人閱讀

摘要:會話控制的思想是指能夠在網站里根據一個會話跟蹤用戶。在之后,包含了會話控制函數,可以使用超級全局變量。檢查數組來確定一個變量是否是注冊的會話變量。注銷和銷毀注銷某一個會話。

筆記內容來源于《PHP和mysql web開發》,有興趣的可以看看這本書,

一.什么是會話控制:
http是一個無狀態協議,說明http沒有一個內建機制來維護兩個事物之間的狀態。當一個用戶訪問不同的頁面時,http無法告訴我們這兩個請求是否來自同一個用戶。
會話控制的思想是指能夠在網站里根據一個會話跟蹤用戶。在PHP4之后,PHP包含了會話控制函數,可以使用$_SESSION 超級全局變量。

二.基本的會話功能:
1,會話是通過唯一的id來驅動的,會話id是一個加密的隨機數字。它由PHP生成,在會話的生命周期內都會保存在客戶端。可以保存在用戶機器里的cookie,或者通過url在網絡上傳遞。
2,會話id允許我們注冊一些特定的變量,叫做會話變量,保存在服務端。

三.cookie:
cookie是與會話不同的解決辦法。cookei就是一小段信息,由腳本在客戶端機器保存。
可以發送一個包含特定數據且具有如下格式的http標題頭,從而在用戶端機器設置一個cookie。

Set_Cookie:NAME = VALUE; [expires=DATE;][path=PATH;][domain=DOMAIN_NAME;][secure]

這會創建一個名為NAME,值為VALUE的cookie,其他參數可選。expires設置失效日期,如果不設置,將永久有效。除非手動刪除。path和domain結合起來指定url或和cookie相關的url,secure指在普通的http連接中不發送cookie。

2。設置cookie:

setcookie ("mycookie","value");

也可以刪除此cookie,只需要將參數時間設置為過去時間。
cookie標題頭必須在發生其他標題頭之前發送,否則無效。這是cookie的限制。

三.實現簡單的會話:

基本步驟:

開始一個會話

注冊會話變量

使用會話變量

注銷會話變量并銷毀會話

開始會話:
方法一:調用session_start()函數開始一段腳本。此最簡單。
此函數會檢查是否有一個會話id存在,如果不存在,會創建一個。并且可以通過$_SESSION超級全局數組訪問。如果存在,則載入并使用。
方法二:是將PHP設置成當有用戶訪問網站的時候就自動啟動一個會話。可以使用php.ini里面的session_auto_start選項。暫時不多介紹。

注冊會話變量:

$_SESSION["my"] = 5;

只需在數組中設置一個元素。在會話結束或手動重置時才會失效。

使用會話變量:

$_SESSION["my"];、
//使用會話變量前要先啟動會話。
if(isset($_SESSION["my"]))...
//檢查$_SESSION數組來確定一個變量是否是注冊的會話變量。

注銷和銷毀:

unset($_SESSION["my"]);
//注銷某一個會話。

$_SESSION = array();
//首先注銷所有的變量
session_destory ();
//然后清除會話id。

實例:
介紹:我們創建一個登陸界面homepage,一個已登陸的界面和一個注銷退出的界面。通過登陸,開啟會話,連接數據庫,再通過會話返回用戶信息,最后可以選擇銷毀會話。直接上三個界面的代碼。
主頁:authmain.php

query($query);
    if ($result->num_rows) {
        $_SESSION["valid_user"] = $username;
    }
    $db_conn->close();
    //檢查登陸用戶是否和數據庫中的數據匹配,匹配則創建變量$_SESSION["valid_user"] = $username;
}
?>


home page

"; echo "log out
"; //如果是匹配用戶,則顯示該用戶信息。 } else { if (isset($username)) { echo "could not log you in
"; } else { echo "you are not logged in
"; } echo "
"; echo ""; echo ""; echo ""; echo ""; echo ""; echo ""; echo "
username:
password:
"; echo "
"; //表單界面,用post方法,將username和password儲存在$_POST[]中。 } ?>
menbers only

已登陸頁:members_only.php

members_only";

if (isset($_SESSION["valid_user"])) {
    echo "you are logged in as:" . $_SESSION["valid_user"] . "
"; } else { echo "you are not logged in.
"; } //檢查是否包含一個注冊的用戶,如果有就顯示,沒有就說尚未登陸 echo "back to main page";

注銷退出頁:logout.php





log out

"; } else { echo "you were not logged in,and so have not been logged out.
"; } ?> back to main page

數據庫代碼:

     create database auth;
     use auth;
     create  table authorized_users (
     name varchar(20),
     password varchar(40),
     primary key (name)
     );
     insert into authorized_users values (
     "sha1user",sha1("pass")
     );
     

以上為會話的簡單實例,通過這個了解關于會話的內容,方便后面進一步的工作。

文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。

轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/25976.html

相關文章

  • PHP面試常考之會話控制

    摘要:一的會話也稱為。如果啟動會話成功,則函數返回,否則返回。會話啟動后就可以載入該會話已經注冊的會話變量以便使用。但數組創建的在會話結束后就會失效。預告本周三更新面試常考之網絡協議,敬請期待。 你好,是我琉憶,歡迎您來到PHP面試專欄。本周(2019.2-25至3-1)的一三五更新的文章如下: 周一:PHP面試常考之會話控制周三:PHP面試常考之網絡協議周五:PHP面試常考題之會話控制和...

    lsxiao 評論0 收藏0
  • PHP多進程初探 --- 再次談daemon進程

    摘要:因為子進程一定不會是組長進程,所以子進程可以調用。主進程退出子進程繼續執行啦啦啦,啦啦啦,啦啦啦,已經變成啦,開心一般服務器軟件都有寫配置項,比如以模式運行還是以模式運行。 [原文地址:https://blog.ti-node.com/blog...] 其實前面是談過一次daemon進程的,但是并涉及過多原理,但是并不影響使用。今天打算說說關于daemon進程更多的二三事,本質上說,如...

    fox_soyoung 評論0 收藏0
  • PHP 會話控制

    摘要:會話控制協議是服務器與瀏覽器相互通信的協議,它是一種無狀態協議,即每個請求之間是相互獨立的。因此,協議沒有一個內建的機制來維護兩個事務之間的狀態。這就是會話控制技術。每一個文件,里面保存了一個會話的數據。此時可以采用等緩存系統。 會話控制 HTTP 協議是 WEB 服務器與瀏覽器相互通信的協議,它是一種無狀態協議,即每個 HTTP 請求之間是相互獨立的。因此,HTTP 協議沒有一個內建...

    CHENGKANG 評論0 收藏0
  • PHP學習記錄(session與cookie)

    摘要:為應用程序啟用會話狀態時,將檢查應用程序中每個頁面請求是否有瀏覽器發送的值。如果未提供任何值,則將啟動一個新會話,并將該會話的值隨響應一起發送到瀏覽器。 session 什么是session? session在計算機中,尤其在網絡應用中,稱為會話控制;具體到web中的session指的就是用戶在瀏覽某個網站時,從進入網站到瀏覽器關閉所經過的這段時間,也就是用戶瀏這個網站所花費的時間。...

    silenceboy 評論0 收藏0

發表評論

0條評論

最新活動
閱讀需要支付1元查看
<