成人午夜视频全免费观看高清-秋霞福利视频一区二区三区-国产精品久久久久电影小说-亚洲不卡区三一区三区一区

session怎么正確的在php中應(yīng)用-創(chuàng)新互聯(lián)

session怎么正確的在php中應(yīng)用?很多新手對(duì)此不是很清楚,為了幫助大家解決這個(gè)難題,下面小編將為大家詳細(xì)講解,有這方面需求的人可以來(lái)學(xué)習(xí)下,希望你能有所收獲。

鄂城ssl適用于網(wǎng)站、小程序/APP、API接口等需要進(jìn)行數(shù)據(jù)傳輸應(yīng)用場(chǎng)景,ssl證書未來(lái)市場(chǎng)廣闊!成為成都創(chuàng)新互聯(lián)公司的ssl證書銷售渠道,可以享受市場(chǎng)價(jià)格4-6折優(yōu)惠!如果有意向歡迎電話聯(lián)系或者加微信:13518219792(備注:SSL證書合作)期待與您的合作!

php session高級(jí)應(yīng)用

session在web技術(shù)中非常重要,由于網(wǎng)頁(yè)是一種無(wú)狀態(tài)的連接程序,因此無(wú)法得知用戶的瀏覽狀態(tài)。通過(guò)session則可以記錄用戶的有關(guān)信息,以供用戶再次以此身份對(duì)web服務(wù)器提交要求時(shí)確認(rèn)。

例如:用戶在瀏覽電子商務(wù)網(wǎng)站的時(shí)候,如果沒(méi)有session,那么用戶每次瀏覽就需要輸入賬戶密碼。

1,Session 臨時(shí)文件


在服務(wù)器中,如果將用戶所有的Session都保存到臨時(shí)目錄中,會(huì)降低服務(wù)器的安全性和效率。打開服務(wù)器存儲(chǔ)的站點(diǎn)會(huì)非常的慢。

使用PHP函數(shù)session_save_path()函數(shù)存儲(chǔ)Session臨時(shí)文件,可以緩解因臨時(shí)文件的存儲(chǔ)導(dǎo)致的服務(wù)器效率降低和站點(diǎn)打開緩慢的問(wèn)題。


示例代碼如下:

<?php
$path ="./tmp/";    //設(shè)置session存儲(chǔ)的路徑
session_save_path($path);
session_start();
$_SESSION['userName']=true;
?>

注意


session_save_path() 必須在session_start() 之前執(zhí)行。

2,Session 緩存

Session 緩存是將網(wǎng)頁(yè)中的內(nèi)容臨時(shí)存儲(chǔ)到IE客戶端的Temporary INternet Files文件夾,并且可以設(shè)置緩存的時(shí)間。


Session的緩存使用的是 session_cache_limiter()函數(shù),其語(yǔ)法如下:


string session_cache_limiter([string cache_limiter]);

其中參數(shù)cache_limiter 為public 或private 。同事session不是在服務(wù)器端,而是在客戶端。在服務(wù)器中沒(méi)有顯示。


緩存時(shí)間的設(shè)置,使用的是函數(shù) session_cache_expire()語(yǔ)法如下:


int session_cache_expire([int new_cahche_expire]);

參數(shù)new_cahche_expire 是session緩存的時(shí)間數(shù)字,單位分鐘。


注意:


這兩個(gè)session函數(shù)必須在session_start()函數(shù)之前執(zhí)行

session 緩存頁(yè)面的示例代碼如下:

<?php

session_cache_limiter("private");
$cache_limit =session_cache_limiter();   //開啟客戶端緩存
echo "緩存限制為:".$cache_limit."\n";
session_cache_expire(30);
$cache_expire = session_cache_expire();  //設(shè)定客戶端緩存時(shí)間
echo "客戶端緩存時(shí)間為:".$cache_expire."分鐘\n";
session_start();

?>

運(yùn)行結(jié)果如下:


session怎么正確的在php中應(yīng)用

3,Session數(shù)據(jù)庫(kù)存儲(chǔ)


在php中Session 的數(shù)據(jù)庫(kù)存儲(chǔ)主要是通過(guò) session_set_save_handler()函數(shù)來(lái)實(shí)現(xiàn)的。 具體語(yǔ)法如下:
bool session_set_save_handler(string open,string close,string read,string write,string destroy,string gc);


session怎么正確的在php中應(yīng)用


下面分別將這6個(gè)參數(shù)(函數(shù))分裝起來(lái),在學(xué)習(xí)完面向?qū)ο缶幊毯?,大家?huì)有一個(gè)更加清晰的認(rèn)識(shí)。


(1) 封裝session_open()函數(shù),代碼如下:

function _session_open($save_path,$session_name){
global $handle;
$handle =mysql_connect('localhost','root','root')or die('數(shù)據(jù)庫(kù)連接失??!');
mysql_select_db('db_database11',$handle)or die('數(shù)據(jù)庫(kù)不存在');
return(true);
}

(2)封裝session_close()函數(shù),代碼如下:

function _session_close(){
global $handle;
mysql_close($handle);
return(true);
}

(3) 封裝 session_read()函數(shù),在函數(shù)中設(shè)定當(dāng)前時(shí)間的UNIX時(shí)間戳,根據(jù)$key查找Session名片及內(nèi)容。代碼如下:

function _session_read($key){
golbal $handle;     //全局變量$handle 連接數(shù)據(jù)庫(kù)
$time =time();     //設(shè)定當(dāng)前時(shí)間
$sql ="select session_data from tb_session where session_key = '$key' and session_time>'$time'";
$result =mysql_query($ssql,$handle);
$row =mysql_fetch_array($result);
if($row){
return($row['session_data']);
}else{
return(false);
}
}

(4) 封裝session_write()函數(shù),函數(shù)設(shè)定Session的失效時(shí)間,查找到Session的名稱及內(nèi)容,如果查詢結(jié)果為空。則將頁(yè)面中Session根據(jù)session_id,session_name,失效時(shí)間,插入數(shù)據(jù)庫(kù)中。如果查詢結(jié)果不為空,則根據(jù) $key修改數(shù)據(jù)庫(kù)中Session存儲(chǔ)信息。代碼如下:

function _session_write($key,$data){
global $handle;
$time = 60*60;
$lapse_time =time()+$time;   //得到UNIX時(shí)間戳
$sql = "select session_data from tb_session where session_key ='$key' and session_time>$lapse_time";
$result =mysql_query($sql,$handle);
if(mysql_num_rows($result)==0){  //沒(méi)有結(jié)果
$sql ="insert into tb_session values('$key','$data',$lapse_time)";
$result =mysql_query($sql,$handle);
}else{
$sql ="update tb_session set session_key='$key',session_data ='$data',session_time =$lapse_time where session_key ='$key'";
$result =mysql_query($sql,$handle);
}
return($result);
}

(5) 封裝session_destroy(),根據(jù)$key刪除數(shù)據(jù)庫(kù)中的Sessin.代碼如下:

function _session_destroy(){
global $handle;
$sql ="delete from tb_session where session_key ='$key'";
$result =mysql_query($sql,$handle);
}

(6)封裝session_gc(),根據(jù)Session的失效時(shí)間刪除過(guò)期的Session,示例代碼如下:

functin _session_gc($expiry_time){
global $handle;
$sql ="delete from tb_session where session_expiry_time<$expiry_time";
$result =mysql_query($sql,$handle);
return($result);
}

看完上述內(nèi)容是否對(duì)您有幫助呢?如果還想對(duì)相關(guān)知識(shí)有進(jìn)一步的了解或閱讀更多相關(guān)文章,請(qǐng)關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道,感謝您對(duì)創(chuàng)新互聯(lián)網(wǎng)站建設(shè)公司,的支持。

網(wǎng)頁(yè)題目:session怎么正確的在php中應(yīng)用-創(chuàng)新互聯(lián)
標(biāo)題鏈接:http://jinyejixie.com/article8/ccpiop.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供做網(wǎng)站、商城網(wǎng)站網(wǎng)頁(yè)設(shè)計(jì)公司、動(dòng)態(tài)網(wǎng)站、企業(yè)網(wǎng)站制作、品牌網(wǎng)站設(shè)計(jì)

廣告

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

網(wǎng)站托管運(yùn)營(yíng)
柳州市| 武宁县| 桃园市| 延长县| 安远县| 南投市| 略阳县| 白河县| 石柱| 苍溪县| 资源县| 固阳县| 元朗区| 永登县| 望城县| 杂多县| 莱芜市| 舟曲县| 江山市| 红安县| 静海县| 四川省| 宣武区| 柳河县| 昌宁县| 伊通| 奉化市| 临沂市| 龙游县| 来凤县| 革吉县| 岳普湖县| 丰镇市| 河西区| 台中市| 兰州市| 湛江市| 铜陵市| 葵青区| 镇巴县| 宜兴市|