精品专区-精品自拍9-精品自拍三级乱伦-精品自拍视频-精品自拍视频曝光-精品自拍小视频

網站建設資訊

NEWS

網站建設資訊

PHP系列(十三)PHP會話控制-創新互聯

php會話控制

創新互聯建站主要從事成都網站制作、成都網站設計、網頁設計、企業做網站、公司建網站等業務。立足成都服務鼓樓,10年網站建設經驗,價格優惠、服務專業,歡迎來電咨詢建站服務:13518219792

一、cookie

1、會話控制之Cookie概述

cookie是在http協議下,服務器或腳本可以維護客戶端信息的一種方式。

Cookie是一種由服務器發送給客戶端的片段信息,存儲在客戶端瀏覽器的內存或者硬盤上。常用于保存用戶名,密碼,個性化設置,個人偏好記錄等。當用戶訪問服務器時,服務器可以設置和訪問cookie的信息。

cookie保存在客戶端,通常是IE或Firefox瀏覽器的cookie臨時文件夾中,可以手動刪除。注意:如果瀏覽器上cookie太多,超過了系統所允許范圍,瀏覽器也會自動對它進行刪除

2、Cookie的操作

設置Cookie

語法:bool setcookie(string name,[string value,[intexpire,[string path,[stringdomain,[intsecure]]]]]);本cookie函數可以有6個屬性,常用的有3個參數。

//向客戶端發送一個Cookie,將變量username值為skygao,保存客戶端一周的時間

setcookie("username","skygao", time()+60*60*24*7);

//使用setCookie()函數的全部參數設置

setcookie("username","skygao", time()+60*60*24*7, "/test",".example.com", 1);

setcookie參數解釋

參數描述示例

name 名字調用名為cookiename的cookie

value 值假設第一個參為cookiename,通過$_COOKIE[‘name’取得值]

exprice 有效時間設置cookie的過期時間和日期,用一個標準的Unix時間標記,可以用time()函數取得,以秒為單位.

path 范圍服務器端的有效路徑,設置為“/”表示這個域中所有數組都可以被訪問讀取。

domain 域名設定cookie有效域名

secure 指明cookie只能通過安全的

https傳送設為true時只能使用安全的https,默認為false,即設置是否僅在https安全連接時才發送cookie到客戶端,0或1。

讀取Cookie

如果Cookie設置成功,客戶端就擁有了Cookie文件,用來保存Web服務器為其設置的用戶信息。

在PHP中讀取Cookie信息很簡單,使用超全局數組

$_COOKIE[‘cookie名’]即可獲取cookie中的內容。

//輸出Cookie中保存的所有用戶信息

print_r($_COOKIE);

3、Cookie的數組形態應用

數組也可以利用多維數組的形式,將多個內容值存儲在相同Cookie名稱標識符下。

setcookie("user[username]","skygao"); //$_COOKIE["user"]["username"]

setcookie("user[password]",md5("123456")); //$_COOKIE["user"]["password"]

setcookie("user[email]","skyga@lampbrother.net");//$_COOKIE["user"]["email"]

//遍歷$_COOKIE[“user”]數組

foreach($_COOKIE["user"]as $key => $value){

//輸出Cookie數組中二維的鍵值對

echo$key.":".$value."\n";

}

4、刪除Cookie

有2種方式刪除Cookie

–1.省略setcookie()函數的所有參數列

–2.設置cookie為已過期

//只指定Cookie識別名稱一個參數,即刪除客戶端中這個指定名稱的Cookie資料

setCookie("account"); //第一種方法

//設置Cookie 在當前時間過期,因此系統會自動刪除識別名稱為isLogin的Cookie

setCookie("isLogin", "", time()-1); //第二種方法

二、session

1、會話控制session的工作機制

Session和Cookie相似,都是用來儲存使用者的相關資料。但大的不同之處在于Cookie是將數據存放在客戶端的計算機之中,而Session則是將數據存放于服務器系統之下。

cookie和session在php中的使用區別:

– cookie和session都可以暫時保存在多個頁面中使用的變量,但是它們有本質的差別。

cookie存放在客戶端瀏覽器中,

session保存在服務器上。

–它們之間的聯系是session ID一般保存在cookie中,或者放在URL上。

禁用cookie的方法:

–點擊IE中的“工具”—“Internet選項”,在彈出的對話框里點擊“安全”—“自定義級別”項,將“允許每個對話COOKIE”設為禁用.

2、session的應用

Session的聲明與使用

Session的設置不同于Cookie,必須先啟動,在PHP中必須調用session_start()。

session_start()函數的語法格式如下

– Bool session_start(void)

–注意:session_start()函數之前不能有任何輸出

Session以數組的形式使用

–如:$_SESSION[‘session名’]

session_start(); //啟動Session的初始化

$_SESSION["username"]= "skygao"; //注冊Session變量,賦值為一用戶名稱

$_SESSION["uid"]= 1; //注冊Session變量,賦值為一個用戶的ID

注冊一個會話變量和讀取Session

在PHP中使用Session變量,除了要啟動之外,還要經過注冊的過程。注冊和讀取Session變量,都要通過訪問$_SESSION數組完成。

在$_SESSION關聯數組中的鍵名具有和PHP中普通變量相同的命名規則。

Session變量會被保存在服務器端的某個文件中,該文件的位置是通過php.ini文件,在session.save_path屬性指定的目錄下。

注銷變量與銷毀Session

1.bool session_destroy(void)

–刪除服務器端保留session信息的文件

2.unset($_SESSION[‘鍵名’])

–刪除內存中由Session數組保存的變量

–清除所有變量可以使用 $_SESSION=array()

3.如果session是基于Cookie的,那么我們還需要刪除客戶端保留的cookie文件

代碼1:

//開啟會話session(cookie不用)

//session_start()前面不能有任何輸出,?這個函數向客戶端發一個session_id保存在cookie中

//還在服務器中創建一個和保存在客戶端同名的session文件(文本)

session_start();

//使用$_SESSION這個數組

$_SESSION['username']="jons";

$_SESSION['age']=18;

$_SESSION['sex']="nv";

$_SESSION['lx']['email']="mz@aaa.com";

$_SESSION['lx']['phone']='119';

echo $_SESSION['username'];

代碼2:

//開啟session

// 1.判斷客戶端是否有了sessionid?變量名為PHPSESSID,直接使用這個session id開啟會話

//也不新創建文件了,直接找這個同名session id的session文件

session_start();

echo '
';

print_r($_SESSION);

echo '
';

echo '
';

echo $_SESSION['username'];

代碼3:

//1開啟會話session? 1

session_start();

//多余的

$username= $_SESSION['username'];

//unset($_SESSION['username']);

//2就可以刪除數組中的所有內容, 即session對應的這個用戶文件的內容就空了

$_SESSION= array();

//刪除客戶中cookie聽sessionid

if(isset($_COOKIE[session_name()])){

setCookie(session_name(),"", time()-3600, "/");

}

//4銷毀session

session_destroy();

echo"再見:{$username}";

3、Session的配置選項

配置Session

php.ini文件和Session有關的幾個常用配置選項

– session.auto_start = 0 ; 在請求啟動時初始化session

– session.cache_expire= 180; 設置緩存中的會話文檔在 n 分鐘后過時

– session.cookie_lifetime = 0 ;設置按秒記的cookie的保存時間,

相當于設置Session的過期時間,為0時表示直到瀏覽器被重啟

– session.auto_start=1,這樣就無需每次使用session之前都要調用session_start()。但啟用該選項也有一些限制,如果確實啟用了 session.auto_start,則不能將對象放入會話中,因為類定義必須在啟動會話之前加載以在會話中重建對象。

–session.cookie_path = / ; cookie的有效路徑

–session.cookie_domain =; cookie的有效域

– session.name =PHPSESSID;用在cookie里的session的名字

–session.save_handler = files ;用于保存/取回數據的控制方式

– session.save_path= /tmp;在 save_handler設為文件時傳給控制器的參數,這是數據文件將保存的路徑.

–session.use_cookies = 1;是否使用cookies

4、Session的自動垃圾回收機制

php.ini中相關的配置

– session.cookie_lifetime=0;關閉瀏覽器相應的cookie文件即被刪除

– session.gc_maxlifetime=1440;設置過期session時間,默認1440秒(24分鐘)

–session.gc_probability/session.gc_divisor;啟動垃圾回收機制的概率(建議值為1/1000~5000)

代碼:

//開啟會話session(cookie不用)

//session_start()前面不能有任何輸出,? 這個函數向客戶端發一個session_id保存在cookie中

// 還在服務器中創建一個和保存在客戶端同名的session文件(文本)

// 調度PHP的機制使用session

session_start();

//使用$_SESSION這個數組

$_SESSION['username']="jons";

$_SESSION['age']=18;

$_SESSION['sex']="nv";

$_SESSION['aaaaaaaa']="bbbbbbbbbbbbbbb";

$_SESSION['lx']['email']="mz@aaa.com";

$_SESSION['lx']['phone']='119';

echosession_name()." = ".session_id()."
";

5、基于URL傳遞session的id

為啥要使用URL傳session id

基于cookie的方式傳遞session id這種方式更優。

但不總是可用,因為用戶在客戶端可以屏蔽cokie;

什么是基于url傳session id

是通過url參數進行傳遞

直接將session id嵌入到url中去

參數規則

Session_name()和session_id()應用

常量SID的使用

URL加session id也是自動的

在使用Linux系統做服務器時,在編輯PHP時,打開—enable-trans-sid配置選項,和運行時選項session.use_trans_sid=1激活,在客戶端禁用cookie時,相對的url將被自動修改為包含sessionid,如果沒有配置,或使用windows系統作為服務器時,可以使用常量SID.

建議使用Linux并配置好

” method=”post”>

Name:

Pass:

微信掃一掃?、關注公眾號

不定時分享資料視頻

PHP系列(十三)PHP會話控制

另外有需要云服務器可以了解下創新互聯cdcxhl.cn,海內外云服務器15元起步,三天無理由+7*72小時售后在線,公司持有idc許可證,提供“云服務器、裸金屬服務器、高防服務器、香港服務器、美國服務器、虛擬主機、免備案服務器”等云主機租用服務以及企業上云的綜合解決方案,具有“安全穩定、簡單易用、服務可用性高、性價比高”等特點與優勢,專為企業上云打造定制,能夠滿足用戶豐富、多元化的應用場景需求。


網站名稱:PHP系列(十三)PHP會話控制-創新互聯
文章分享:http://m.jcarcd.cn/article/cooido.html
主站蜘蛛池模板: 国产极品国产极品 | 国产极品视频一区二 | 九九热99最新地址 | 国产一区二区年轻 | 午夜伦理电影网 | 日韩中文福利片 | 精品人无| 91免费视频在线 | 国产日产欧美一区 | 三极网站 | 91免费网址 | 欧美日韩高清有码 | 乱公和我做爽死我了 | 国产精品日产三级 | 欧美一级性 | 国产又黄又粗又猛又 | 人人摸人人玩 | 91熟女性爱视频 | 国产精品勾引 | 午夜福利| 国产视频99kai | 中文字幕日韩wm二 | 最新免费观看男女啪啪视频 | 青青青国产 | 欧美在线观看h片 | 国产精品高清网站 | 精品一区二区三区中 | 91成人精品爽啪在 | 欧美在线 | 精品影院| 69精品二三区 | 国产福利资源在线 | 国产愉拍99线观看 | 欧美一区2区 | 日韩在线视频观看 | 青青在线视频 | 国产九九精品视频 | 国产综合8| 午夜免费观看福利片 | 国产亚洲一区在线 | 日本无卡码|