摘要:?jiǎn)螁稳〕鲎约旱男畔?chǎng)景當(dāng)前頁(yè)面不是本站用戶(hù)不能看需要把信息存儲(chǔ)在中,共享。從客戶(hù)端設(shè)置,告知瀏覽器要設(shè)置了。如果想讓整個(gè)站有效果,可以在根目錄下也可以使用第四個(gè)參數(shù),來(lái)指定生效路徑是不能夠跨域名否則存在安全問(wèn)題例如的,不能被發(fā)送到下使用。
用戶(hù)注冊(cè)功能 頁(yè)面分析
文件: reg.php
作用:展示注冊(cè)表單
Model: N/A View: zhuce.html Controller: reg.php
文件:regAct.php
作用:
接收注冊(cè)表單的信息
判斷數(shù)據(jù)
調(diào)用UserModel
把信息寫(xiě)入數(shù)據(jù)庫(kù)
Model:UserModel Controller: regAct.php View:regres.html理解Cookie
場(chǎng)景1:
需要看自己的注冊(cè)資料,即用戶(hù)表的自己的信息。但是別人不允許看我的資料,我也不能看別人的信息。
單單取出自己的信息.
場(chǎng)景2:
當(dāng)前頁(yè)面不是本站用戶(hù)不能看.
需要把信息存儲(chǔ)在cookie中,共享。
從 客戶(hù)端設(shè)置cookie,告知瀏覽器要設(shè)置cookie了。 (token)
在客戶(hù)端需要cookie的時(shí)候,從瀏覽器處獲取 。
登陸時(shí),是誰(shuí)給誰(shuí)信息
登陸時(shí),從客戶(hù)端設(shè)置信息到瀏覽器中存儲(chǔ)。
驗(yàn)證登錄時(shí),是誰(shuí)給誰(shuí)信息
驗(yàn)證登錄時(shí),瀏覽器需要拿著信息到客戶(hù)端驗(yàn)證,是瀏覽器端給客戶(hù)端信息。
cookie設(shè)置讀取與銷(xiāo)毀cookie參數(shù)
setcookie($name, $value, $expire, $path, $domain, $secure, $httponly)
setcookie()常用參數(shù)
1: cookie key
2: cookie val
3: cookie 有效期
4: cookie 有效路徑
加上一個(gè)負(fù)數(shù)的時(shí)間戳
setcookie("school", "", 0); // cookie設(shè)置成負(fù)數(shù)或者0cookie計(jì)數(shù)器
if ( !isset($_COOKIE["num"]) ) { $num = 1; setcookie("num", $num); } else { $num = $_COOKIE["num"]; setcookie("num", $num+1); } echo "這是你的第" . $num . "次訪(fǎng)問(wèn)";瀏覽歷史
= 10 ) { array_pop($his); } } setcookie("history", implode(",", $his)); ?>
場(chǎng)景:
cookie 由瀏覽器帶著,如果被篡改了, 如何做.
cookie 往往用來(lái)記住用戶(hù)名,瀏覽歷史,等安全性要求不高的地方.
使用session. 給瀏覽器端一個(gè)憑證,數(shù)據(jù)存儲(chǔ)客戶(hù)端.
基本使用設(shè)置session
session_start(); // 開(kāi)啟session $_SESSION["user"] = "pink";
讀取session
echo $_SESSION["user"];
session 中設(shè)置的值存儲(chǔ)的位置配置的地方在php.ini中的session.save_path.
其中的session_id 是無(wú)規(guī)律的token給瀏覽器的憑證.
無(wú)論是創(chuàng)建,修改,銷(xiāo)毀.都需要session_start()
一旦session_start()之后,$_SESSION就可以自由的設(shè)置,刪除,修改。(即:當(dāng)成普通數(shù)組來(lái)操作,而cookie只能通過(guò)setcookie()來(lái)進(jìn)行)
創(chuàng)建
修改
銷(xiāo)毀
可以多帶帶銷(xiāo)毀某個(gè)單元 ,即把$_SESSION數(shù)組某一個(gè)單元unset()
unset($_SESSION["user"]);
可以把整個(gè)$_SESSION銷(xiāo)毀
$_SESSION = array(); // 臨時(shí)存儲(chǔ)的文件中的內(nèi)容不存在
利用函數(shù)把箱子整體清空
session_unset($_SESSION); // 臨時(shí)存儲(chǔ)的文件中的內(nèi)容不存在
把文件銷(xiāo)毀.
session_destroy();session 的生命周期
一個(gè)session,有2方面的數(shù)據(jù)共同發(fā)揮作用
客戶(hù)端的cookie
服務(wù)器端的session文件
刪除也是要從這兩個(gè)方面去刪除
在php.ini 中, session.cookie_lifetime = 15; // 控制sessionid的cookie的聲明周期,以秒為單位
注意: 如果用戶(hù)修改cookie,讓cookie的生命周期為1年.也無(wú)法判斷。
$_SESSION["time"] = 登陸時(shí)的時(shí)間戳
檢驗(yàn)session的開(kāi)啟時(shí)間
session路徑session的有效,取決于cookie,cookie在哪兒有效,session自然就能讀到.
在 php.ini中, 指定了session的cookie的有效路徑是/ 路徑:session.cookie_path = "/"
無(wú)論session在多深的目錄下設(shè)置,而session在整站有效果.
cookie 只能存儲(chǔ)字符串,數(shù)字這樣的標(biāo)量數(shù)據(jù).
session可以存儲(chǔ)數(shù)組/對(duì)象(除了資源型,其它7中類(lèi)型都可以)
注意:如果把對(duì)象存儲(chǔ)到session里,那么另一個(gè)讀取session的頁(yè)面,也必須有此對(duì)象的類(lèi)聲明 否則從session分析出一個(gè)對(duì)象,卻沒(méi)有與之對(duì)應(yīng)的類(lèi),則會(huì)提示__PHP_Incomplete_Class
從http協(xié)議角度看,cookie信息是放在頭信息里傳輸?shù)模匀?,使用cookie之前,不能有任何的主體信息輸出,空白,空行也不可行,如果還有出錯(cuò),可以檢查BOM.
文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請(qǐng)注明本文地址:http://systransis.cn/yun/22084.html
閱讀 1479·2023-04-26 00:08
閱讀 818·2021-11-23 18:51
閱讀 1690·2021-11-12 10:34
閱讀 1023·2021-10-14 09:43
閱讀 512·2021-08-18 10:23
閱讀 2594·2019-08-30 15:55
閱讀 3402·2019-08-30 11:05
閱讀 2802·2019-08-29 12:50