最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

php及codeigniter使用session-cookie的方法(詳解)

 更新時(shí)間:2017年04月06日 11:25:05   投稿:jingxian  
下面小編就為大家?guī)硪黄猵hp及codeigniter使用session-cookie的方法(詳解)。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧

1、讀寫cookie

<1>原生

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

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

<2>CI框架

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

<3>通過helper

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

2、讀寫session

<1>原生session

啟動:

<?php
session_start();
?>

賦值:

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

取值:

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

存續(xù)時(shí)間:

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

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

<2>CI框架session

啟動:

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

取值:

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

存續(xù)時(shí)間:

客戶端有2個(gè)小時(shí)的存續(xù)時(shí)間,當(dāng)服務(wù)器的session被刪除,因?yàn)榭蛻舳说膕ession id還是有效的,所以當(dāng)再次打開的時(shí)候,服務(wù)端會再創(chuàng)建一個(gè)跟客戶端session id相同的session,當(dāng)然是創(chuàng)建新id還是老id并不重要,因?yàn)橹皇莍d同名,里面是沒有數(shù)據(jù)的

<3>區(qū)別

>兩個(gè)session名稱是不同的,一個(gè)叫phpsession,一個(gè)叫ci_session

>只能啟動一個(gè),不能兩個(gè)都啟動

>取值是相同的

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

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

<4>例外情況

有一種情況是這樣的:

當(dāng)此時(shí)已經(jīng)存在ci_session,因?yàn)檫@個(gè)ci_是持久化的

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

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

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

<5>session如何運(yùn)作

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

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

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

以上這篇php及codeigniter使用session-cookie的方法(詳解)就是小編分享給大家的全部內(nèi)容了,希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。

相關(guān)文章

  • 如何使用Zephir輕松構(gòu)建PHP擴(kuò)展

    如何使用Zephir輕松構(gòu)建PHP擴(kuò)展

    通過PHP擴(kuò)展,我們可以在php代碼中使用一些特定的方法(大部分的 php擴(kuò)展都是用C寫的)。本文將介紹如何使用Zephir輕松構(gòu)建PHP擴(kuò)展。
    2021-05-05
  • 在php中判斷一個(gè)請求是ajax請求還是普通請求的方法

    在php中判斷一個(gè)請求是ajax請求還是普通請求的方法

    如何在php中判斷一個(gè)網(wǎng)頁請求是ajax請求還是普通請求?你可以通過傳遞參數(shù)的方法來實(shí)現(xiàn),例如使用如下網(wǎng)址請求
    2011-06-06
  • PHP 超級全局變量相關(guān)總結(jié)

    PHP 超級全局變量相關(guān)總結(jié)

    這篇文章主要介紹了PHP 超級全局變量的的相關(guān)資料,文中講解非常細(xì)致,代碼幫助大家更好的理解和學(xué)習(xí),感興趣的朋友可以了解下
    2020-06-06
  • PHP CURL獲取返回值的方法

    PHP CURL獲取返回值的方法

    這篇文章主要介紹了PHP CURL獲取返回值的方法,需要的朋友可以參考下
    2014-05-05
  • php.ini中的php-5.2.0配置指令詳解

    php.ini中的php-5.2.0配置指令詳解

    簡介本文并非是對英文版 php.ini 的簡單翻譯,而是參考了眾多資料以后,結(jié)合自己的理解, 在原有 php.ini 基礎(chǔ)上增加了一些實(shí)用模塊的配置說明,同時(shí)對文件內(nèi)容的安排進(jìn)行了調(diào)整。 由于作者不喜歡 no-free 的玩意兒,所以刪除了除 MySQL 和 PostgreSQL 以外的其他數(shù)據(jù)庫模塊配置選項(xiàng)。
    2008-03-03
  • PHP7新特性之抽象語法樹(AST)帶來的變化詳解

    PHP7新特性之抽象語法樹(AST)帶來的變化詳解

    這篇文章主要介紹了PHP7新特性之抽象語法樹(AST)帶來的變化,結(jié)合實(shí)例形式分析了PHP7抽象語法樹的相關(guān)概念、功能、特性、使用方法及相關(guān)注意事項(xiàng),需要的朋友可以參考下
    2018-07-07
  • PHP使用pear實(shí)現(xiàn)mail發(fā)送功能 windows環(huán)境下配置pear

    PHP使用pear實(shí)現(xiàn)mail發(fā)送功能 windows環(huán)境下配置pear

    這篇文章主要介紹在 windows環(huán)境下如何配置pear,PHP使用pear實(shí)現(xiàn)mail發(fā)送功能,感興趣的小伙伴們可以參考一下
    2016-04-04
  • php實(shí)現(xiàn)批量修改文件名稱的方法

    php實(shí)現(xiàn)批量修改文件名稱的方法

    這篇文章主要介紹了php實(shí)現(xiàn)批量修改文件名稱的方法,涉及php針對文件的遍歷及文件名的替換操作相關(guān)技巧,需要的朋友可以參考下
    2016-07-07
  • php項(xiàng)目打包方法

    php項(xiàng)目打包方法

    大家經(jīng)常會接到一些編程的活,例如設(shè)計(jì)企業(yè)網(wǎng)站,做做財(cái)務(wù),統(tǒng)計(jì)系統(tǒng)什么的?;蛟S是因?yàn)榕笥训男枨?,或許圖個(gè)零花。不管什么原因吧。等程序做好了,給對方展示、安裝,就成了問題。
    2008-09-09
  • PHP中Date()時(shí)間日期函數(shù)的使用方法小結(jié)

    PHP中Date()時(shí)間日期函數(shù)的使用方法小結(jié)

    PHP開發(fā)中Date()時(shí)間日期函數(shù)的使用方法php date() 函數(shù)可把時(shí)間戳格式化為可讀性更好的日期和時(shí)間。
    2011-04-04

最新評論

东阳市| 南城县| 青浦区| 桐城市| 姚安县| 留坝县| 佳木斯市| 万山特区| 囊谦县| 金湖县| 永州市| 盐边县| 黑河市| 平阳县| 隆子县| 邯郸县| 进贤县| 改则县| 洛南县| 黄大仙区| 平和县| 三门峡市| 汶川县| 灵武市| 乡城县| 蒙山县| 临安市| 崇礼县| 长顺县| 平乐县| 礼泉县| 福清市| 黎城县| 成都市| 新昌县| 耿马| 台江县| 漳平市| 二连浩特市| 虞城县| 抚远县|