国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > PHP > 正文

PHP session、cookie的會話控制學(xué)習(xí)

2020-03-22 19:57:26
字體:
供稿:網(wǎng)友
  • 會話控制是一種面向連接的可靠通信方式,通常根據(jù)會話控制記錄判斷用戶登錄的行為。比如:網(wǎng)購和處理郵件時,你可能需要訪問多個頁面,但只要你不退出,在同一個系統(tǒng)上,多個頁面之間互相切換時,還能保持用戶的登錄信息。

    但是http是無狀態(tài)的協(xié)議,不能維護(hù)兩個事物之間的狀態(tài)。但一個用戶在請求一個頁面以后再請求另外一個頁面時,還要讓服務(wù)器知道這是同一個用戶。可以使用cookie和session解決這個問題。

    cookies(小甜餅的意思)是一種由服務(wù)器發(fā)送給客戶端的片段信息,存儲在客戶端瀏覽器的內(nèi)存或硬盤上,在客戶對該服務(wù)的請求中發(fā)回它。

    格式和描述:

    bool setcookie ( string name [, string html' target='_blank'>value [, int expire [, string path [, string domain [, int secure]]]]])

    setcookie() defines a cookie to be sent along with the rest of the HTTP headers. Like other headers, cookies must be sent before any output from your script (this is a protocol restriction). This requires that you place calls to this function prior to any output, including <html> and <head> tags as well as any whitespace. If output exists prior to calling this function, setcookie() will fail and return FALSE. If setcookie() successfully runs, it will return TRUE. This does not indicate whether the user accepted the cookie.

    www.it165.net

    參數(shù) 描述 示例 $name cookie的識別名稱 $value cookie的值 $expire cookie的生存期限 $path cookie在服務(wù)器端生效的路徑 $domain cookie所屬服務(wù)器域名 $secure 設(shè)置cookie是否僅通過https連接
    setcookie()函數(shù)的參數(shù)說明

    一個簡單的登錄系統(tǒng):


    <?php        if(isset($_GET["out"])){        setcookie('id','');/*刪除cookie,即把其值設(shè)為空*/        setcookie('pass','');        echo "<script>location.href='Untitled 5.php'</script>";    }        if(isset($_POST["name"])&&isset($_POST["password"])){        setcookie('id',$_POST["name"],time()+3600);        setcookie('pass',$_POST["password"],time()+3600);        echo "<script>location.href='Untitled 5.php'</script>";    }        if(isset($_COOKIE['id'])&&$_COOKIE['pass']){        echo "登陸成功<br />用戶名:".$_COOKIE['id']."<br>密碼:".$_COOKIE['pass'];                    echo "<br><a href='Untitled 5.php?out=out'>退出</a>";    }?><form action="" method="post">    用戶:    <input type="text" name="name" /><br /><br />    密碼:    <input type="password" name="password" /><br /><br />    <input type='submit' value="登陸" /></form>


    session

    session的意思是會話,session和cookie都是用來存儲用戶的相關(guān)資料,不同之處是session將數(shù)據(jù)存儲在服務(wù)器端。

    客戶端僅需要保存由服務(wù)器為用戶創(chuàng)建的一個session標(biāo)識符,稱為sessionID;而在服務(wù)器端保存session變量的值。SessionID是一個不會重復(fù),又不容易被找到規(guī)律的,由32為十六進(jìn)制數(shù)組成的字符串。如果用戶阻止cookie的使用,則可以將sessionid保存在用戶瀏覽器地址欄的URL中。

    當(dāng)某個用戶想web服務(wù)器發(fā)出請求時,服務(wù)器首先會檢查這個客戶端的請求里是否已經(jīng)包含了一個sessionID。如果包含,說明之前已經(jīng)為此用戶創(chuàng)建過sessionID,服務(wù)器則按該sessionID,把session檢索出來使用。如果不含,則為該用戶創(chuàng)建一個session,并且生成一個與此session相關(guān)的sessionID,在本次響應(yīng)中被傳送給客戶端保存。

    為了避免對服務(wù)器的過大消耗,session會因為下面兩種情況而自然消失:

    一、用戶關(guān)閉瀏覽器。

    二、session指定的有效期限到期。一般PHP系統(tǒng)中對于session的生存時間并無定義,默認(rèn)為0.可以通過修改php.ini配置文件中有關(guān)"session.cookie.lift_time"項目,來設(shè)定有效期,以秒為單位指定了發(fā)送到瀏覽器cookiecookie的生命周期。

    和cookie不同,session使用前,必須先調(diào)用session_start()函數(shù),以便讓PHP核心程序,將和session相關(guān)的內(nèi)建環(huán)境變量預(yù)先載入內(nèi)存。

    可使用session_destroy()函數(shù)銷毀整個session

    將上面的使用cookie的登錄系統(tǒng)修改為使用session:

    <?php    session_start();    if(isset($_GET["out"])){        unset($_SESSION['id']);/*刪除session中的單個變量*/        unset($_SESSION['pass']);    }        if(isset($_POST["name"])&&isset($_POST["password"])){        $_SESSION['id']=$_POST["name"];        $_SESSION['pass']=$_POST["password"];    }        if(isset($_SESSION['id'])&&$_SESSION['pass']){        echo "登陸成功<br />用戶名:".$_SESSION['id']."<br>密碼:".$_SESSION['pass'];                    echo "<br><a href='Untitled 5.php?out=out'>退出</a>";    }?><form action="" method="post">    用戶:    <input type="text" name="name" /><br /><br />    密碼:    <input type="password" name="password" /><br /><br />    <input type='submit' value="登陸" /></form>


    本文出自 “開心菠菜” 博客

    PHP編程

    鄭重聲明:本文版權(quán)歸原作者所有,轉(zhuǎn)載文章僅為傳播更多信息之目的,如作者信息標(biāo)記有誤,請第一時間聯(lián)系我們修改或刪除,多謝。

  • 發(fā)表評論 共有條評論
    用戶名: 密碼:
    驗證碼: 匿名發(fā)表
    主站蜘蛛池模板: 嵩明县| 当涂县| 石家庄市| 亳州市| 德化县| 桃园市| 临潭县| 灵宝市| 阳高县| 和静县| 葫芦岛市| 东阿县| 临漳县| 福州市| 石首市| 中牟县| 汤阴县| 盐亭县| 平山县| 万山特区| 西乡县| 郯城县| 乌鲁木齐市| 阜宁县| 丽水市| 都安| 上杭县| 宜宾市| 石泉县| 镇雄县| 略阳县| 禹城市| 清镇市| 香港 | 鄂托克旗| 尼勒克县| 和硕县| 宿松县| 德钦县| 阿城市| 隆德县|