這篇文章主要介紹了PHP中cookie、session的用法示例,具有一定借鑒價(jià)值,感興趣的朋友可以參考下,希望大家閱讀完這篇文章之后大有收獲,下面讓小編帶著大家一起了解一下。
創(chuàng)新互聯(lián)主要從事網(wǎng)站建設(shè)、做網(wǎng)站、網(wǎng)頁(yè)設(shè)計(jì)、企業(yè)做網(wǎng)站、公司建網(wǎng)站等業(yè)務(wù)。立足成都服務(wù)谷城,10余年網(wǎng)站建設(shè)經(jīng)驗(yàn),價(jià)格優(yōu)惠、服務(wù)專業(yè),歡迎來電咨詢建站服務(wù):13518219792具體如下:
cookie的使用
//生成cookie //注釋:setcookie() 函數(shù)必須位于 標(biāo)簽之前。 //setcookie(name, value, expire, path, domain); //名稱,值,過期時(shí)間,有效路徑,有效域名 //path,可選;如果路徑設(shè)置為 "/",那么 cookie 將在整個(gè)域名內(nèi)有效.如果路徑設(shè)置為 "/test/",那么 cookie 將在 test 目錄下及其所有子目錄下有效。默認(rèn)的路徑值是 cookie 所處的當(dāng)前目錄。 //domain,可選;為了讓 cookie 在 example.com 的所有子域名中有效,您需要把 cookie 的域名設(shè)置為 ".example.com"。當(dāng)您把 cookie 的域名設(shè)置為 www.example.com 時(shí),cookie 僅在 www 子域名中有效。默認(rèn)當(dāng)前域名。 setcookie("user", "Alex Porter", time()+3600); setcookie("userid", "1000569852", time()+3600); //獲取 var_dump($_COOKIE); // isset() 函數(shù)來確認(rèn)是否已設(shè)置了 cookie: if (isset($_COOKIE["user"])){ echo "Welcome " . $_COOKIE["user"] . "!
"; } else{ echo "Welcome guest!
"; } //當(dāng)刪除 cookie 時(shí),您應(yīng)當(dāng)使過期日期變更為過去的時(shí)間點(diǎn)。 setcookie("user", "", time()-3600);
session的使用
//session特定:可供應(yīng)用程序中的所有頁(yè)面使用;會(huì)話信息是臨時(shí)的,在用戶離開網(wǎng)站后將被刪除。 // 虛擬主機(jī)用戶。 設(shè)置一個(gè)存放目錄,需要可讀寫權(quán)限 $savePath = getcwd().'/session_save_dir/'; //echo $savePath; session_save_path($savePath);//session_start 開啟前。 session_id('phpjianlong'); // session_start() 函數(shù)之前調(diào)用 session_id();命名方式同變量 session_start(); //存儲(chǔ)和取值 $_SESSION['views']=123456789; $_SESSION['name']='php建龍'; $_SESSION['array']=array('a','b','c','d'); echo "Pageviews=". $_SESSION['views']; var_dump($_SESSION); //判斷是否存在 if(isset($_SESSION['views'])){ $_SESSION['views']=$_SESSION['views']+1; } else{ $_SESSION['views']=1; //不存在賦值 } echo "Views=". $_SESSION['views']; //session的刪除 unset($_SESSION['name']); var_dump($_SESSION); //注釋:session_destroy() 將重置 session,您將失去所有已存儲(chǔ)的 session 數(shù)據(jù)。 session_destroy(); //不帶參數(shù) session_start(); //再次開啟session是,重新初始化$_SESSION數(shù)組; var_dump($_SESSION); //獲取/設(shè)置 當(dāng)前會(huì)話 ID。;瀏覽器會(huì)自動(dòng)生成名為PHPSESSID的cookie echo session_id(); session_id('phpjianlong'); // session_start() 函數(shù)之前調(diào)用 session_id();命名方式同變量
session和cookie的區(qū)別:
1、session在服務(wù)器,cookie存儲(chǔ)在瀏覽器
2、session可以存儲(chǔ)數(shù)組,cookie value只能是字符串
3、session不能設(shè)置有效期,cookie可以設(shè)置有效期
4、session基于cookie判斷用戶信息,禁用cookie,session受影響不能用。還可以手動(dòng)通過URL傳值、隱藏表單傳遞Session ID。用文件、數(shù)據(jù)庫(kù)等形式保存Session ID,
URL 形如:/tupian/20230522/index.php bba5b2a240a77e5b44cfa01d49cf9669
用戶自動(dòng)登錄的實(shí)現(xiàn)
//方法1: Cookie,在 Cookie 中保存用戶名和密碼(可能是 md5 加密后字符串),并在每次請(qǐng)求頁(yè)面的時(shí)候進(jìn)行驗(yàn)證。如果用戶名和密碼存儲(chǔ)在數(shù)據(jù)庫(kù),每次都要執(zhí)行一次數(shù)據(jù)庫(kù)查詢,給數(shù)據(jù)庫(kù)造成多余的負(fù)擔(dān)。因?yàn)榭蛻舳?nbsp;Cookie 中的信息是可能被用戶查看和修改。不安全舍棄此方法。 //方法2:session,用cookie長(zhǎng)期保存session id; //系統(tǒng)臨時(shí)文件夾找到這個(gè) Session 文件,一般文件名形如:sess_4c83638b3b0dbf65583181c2f89168ec,后面是 32 位編碼后的隨機(jī)字符串。用編輯器打開它,看一下它的內(nèi)容: //變量名|類型:長(zhǎng)度:值; //設(shè)置 Session 的生存期: session_start(); // 保存5天 $lifeTime = 5 * 24 * 3600; setcookie(session_name(), session_id(), time() + $lifeTime, "/"); //之后此瀏覽器在此輸入對(duì)應(yīng)網(wǎng)址,服務(wù)器獲取cookie保存的sessionid;根據(jù)sessionid的內(nèi)容判斷,實(shí)現(xiàn)自動(dòng)登錄。
感謝你能夠認(rèn)真閱讀完這篇文章,希望小編分享的“PHP中cookie、session的用法示例”這篇文章對(duì)大家有幫助,同時(shí)也希望大家多多支持創(chuàng)新互聯(lián)網(wǎng)站建設(shè)公司,,關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道,更多相關(guān)知識(shí)等著你來學(xué)習(xí)!