欧美一区二区三区老妇人-欧美做爰猛烈大尺度电-99久久夜色精品国产亚洲a-亚洲福利视频一区二区

session-cookie方法如何在php項目中使用-創(chuàng)新互聯(lián)

本篇文章給大家分享的是有關(guān)session-cookie方法如何在php項目中使用,小編覺得挺實用的,因此分享給大家學(xué)習(xí),希望大家閱讀完這篇文章后可以有所收獲,話不多說,跟著小編一起來看看吧。

成都創(chuàng)新互聯(lián)主營陳倉網(wǎng)站建設(shè)的網(wǎng)絡(luò)公司,主營網(wǎng)站建設(shè)方案,app軟件開發(fā),陳倉h5小程序定制開發(fā)搭建,陳倉網(wǎng)站營銷推廣歡迎陳倉等地區(qū)企業(yè)咨詢

1、讀寫cookie

<1>原生

setcookie('name','value',time)

設(shè)置失敗,沒有正常寫入瀏覽器,測試失敗,原因未知

<2>CI框架

$this->input->set_cookie("views","test10",1000);
echo $_COOKIE["views"];//此方法獲取值時,如果值不存在會報錯,當(dāng)然可以先用isset($_COOKIE["views"])判斷一下

<3>通過helper

$this->load->helper('cookie');//這行放在view也是可以的,隨便
set_cookie('views','test10',1000);
echo get_cookie('views');//此方法獲取值如果獲取不到,會返回空,不會報錯

2、讀寫session

<1>原生session

啟動:

<?php
session_start();
?>

賦值:

$_SESSION['views'] = "test20";

取值:


echo "Session:". $_SESSION['views'];

存續(xù)時間:

會話。當(dāng)瀏覽器關(guān)閉,cookie里面的phpsession就會清空,下次打開會重新生成一個

雖然服務(wù)器還保存著這個session。session的過期時間在php.ini里設(shè)置,參見另一篇文章php(codeigniter)安全性注意事項

<2>CI框架session

啟動:

$this->load->library('session');//load必須在controller完成,當(dāng)要使用session必須先load賦值:
$this->session->views = "test11";

取值:


echo "Session:". $_SESSION['views'];

存續(xù)時間:

客戶端有2個小時的存續(xù)時間,當(dāng)服務(wù)器的session被刪除,因為客戶端的session id還是有效的,所以當(dāng)再次打開的時候,服務(wù)端會再創(chuàng)建一個跟客戶端session id相同的session,當(dāng)然是創(chuàng)建新id還是老id并不重要,因為只是id同名,里面是沒有數(shù)據(jù)的

<3>區(qū)別

>兩個session名稱是不同的,一個叫phpsession,一個叫ci_session

>只能啟動一個,不能兩個都啟動

>取值是相同的

>兩個千萬不要混用,應(yīng)該全面放棄原生的方式

>原生phpsession的是隨便訪問的,ci_session是httponly的,這就意味著原生的session可能會被通過xxs攻擊,通過js獲取到cookie

<4>例外情況

有一種情況是這樣的:

當(dāng)此時已經(jīng)存在ci_session,因為這個ci_是持久化的

//session_start();//沒有啟動原生的session
//$this->load->library('session');//沒有啟動ci的session
$_SESSION['views'] = "test23";//直接用原生的方式進行賦值
echo "Session:". $_SESSION['views'];//可以正常取值出來"test23"

通過查看cookie,發(fā)現(xiàn)沒有原生session存在,只能是走的ci session,那么在服務(wù)器的session里找到這個文件,發(fā)現(xiàn)這個值沒有寫進去 如果有聲明session_start(),他就會走原生的模式,會重新創(chuàng)建一個phpsession,并且值會寫進去

如果什么都沒聲明,也沒有賦值,直接取值,那么會報錯,因為要使用ci_session必須要load,我們沒有l(wèi)oad就會報錯,所以證明了,在用原生的方式進行賦值的時候,他相當(dāng)于啟動了session,啟用了ci_session,但他又沒有權(quán)限寫入,這可以說是一個bug

<5>session如何運作

cookie的運作比較容易理解,就是寫入到用戶cookie,寫什么讀出來就是什么。只要是本站的cookie,就可以通過鍵值讀出來。

session的值是存在服務(wù)器的,但是怎么知道這個值是哪個用戶的?通過在用戶cookie里存入那個session的文件名,而保存的值放在服務(wù)器同名的文件里面。說的盜取cookie指的就是盜取這個,重要的信息存在服務(wù)器上,但是這個被盜了也完蛋。所以,也不能相信cookie里存的這個session-key,應(yīng)該做一個鑒權(quán)。

注意,寫入session的同時,寫session-key到用戶的cookie里這個是自動完成的,這個存續(xù)時間應(yīng)該是在服務(wù)器的php.ini里面配置。


以上就是session-cookie方法如何在php項目中使用,小編相信有部分知識點可能是我們?nèi)粘9ぷ鲿姷交蛴玫降摹OM隳芡ㄟ^這篇文章學(xué)到更多知識。更多詳情敬請關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道。

本文名稱:session-cookie方法如何在php項目中使用-創(chuàng)新互聯(lián)
轉(zhuǎn)載注明:http://chinadenli.net/article6/cophig.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供動態(tài)網(wǎng)站建站公司外貿(mào)建站外貿(mào)網(wǎng)站建設(shè)品牌網(wǎng)站建設(shè)移動網(wǎng)站建設(shè)

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)

外貿(mào)網(wǎng)站制作