《PHP實例:PHP session 會話處理函數(shù)》要點:
本文介紹了PHP實例:PHP session 會話處理函數(shù),希望對您有用。如果有疑問,可以聯(lián)系我們。
PHP教程PHP Session 變量
PHP教程當運行一個應用程序時,你會打開它,做些更改,然后關閉它.這很像一次會話.計算機清楚你是誰.它知道你何時啟動應用程序,并在何時終止.但是在因特網(wǎng)上,存在一個問題:服務器不知道你是誰以及你做什么,這是由于 HTTP 地址不能維持狀態(tài).
PHP教程通過在服務器上存儲用戶信息以便隨后使用,PHP session 解決了這個問題(比如用戶名稱、購買商品等).不過,會話信息是臨時的,在用戶離開網(wǎng)站后將被刪除.如果需要永久儲存信息,可以把數(shù)據(jù)存儲在數(shù)據(jù)庫中.
PHP教程Session 的工作機制是:為每個訪問者創(chuàng)建一個唯一的 id (UID),并基于這個 UID 來存儲變量.UID 存儲在 cookie 中,亦或通過 URL 進行傳導.
PHP教程1. 開始會話
PHP教程在把信息儲存到session之前,首先要開啟會話.php提供了session_start()函數(shù)來開始或者繼續(xù)一個會話.定義:
PHP教程1 bool session_start( void )?
PHP教程調(diào)用如下:
PHP教程
<?php session_start();?>
<html>
<body></body>
</html>
PHP教程注意:
PHP教程(1)session_start()函數(shù)必須位于<html>標簽之前,也就是該函數(shù)必須在任何輸出前調(diào)用,常常在寫程序時不注意就多輸入了一個空格或者回車,這時就會報錯.應特別注意這一點.(我可是被坑過)
PHP教程(2)無論有沒有成功創(chuàng)建會話,session_start()函數(shù)都會返回TRUE,因此使用任何異常處理都不起作用.
PHP教程(3)還可以啟用配置指令session.auto_start,從而不必執(zhí)行這個函數(shù),但是這樣的話,每個php頁面執(zhí)行時都會開始或者繼續(xù)一個會話.
PHP教程2.存儲或者讀取會話
PHP教程存儲和讀取session變量的正確方法是使用php的 S ESSION變量. SESSION變量._SESSION是php提供的全局參數(shù),專門用來存儲和讀取session.(注意關聯(lián)數(shù)組的鍵名和普通變量的命名規(guī)則一致)
PHP教程存儲會話時,可以對其直接賦值.
PHP教程$_SESSION[‘season'] = '秋天';?
PHP教程以上設置了一個鍵名為“season”的會話元素,其值為“秋天”.當讀取時,就像調(diào)用普通數(shù)組元素一樣.
PHP教程下面的兩段代碼顯示怎么存儲并讀取一個會話元素.
PHP教程這是session1.php文件:
PHP教程
<?php
/**
* Created by PhpStorm.
* User: yuxiu
* Date: //
* Time: :
*/
if(isset($_POST['submit'])){
session_start(); //開始建立一個會話
$_SESSION['season'] = $_POST['season']; //存儲會話數(shù)據(jù)
header("Location: session.php"); //應特別注意header()里的格式問題
}
?>
<b>存儲會話</b>
<hr/>
選擇需要設置的數(shù)據(jù):
<form name="form" method="post" action="" id="form" >
<select name="season" id="season_select" >
<option value="春天">春天</option>
<option value="夏天">夏天</option>
<option value="秋天">秋天</option>
<option value="冬天">冬天</option>
</select>
<br/>
<br/>
<br/>
<input type="submit" name="submit" value="submit"/>
</form>
PHP教程?這是session2.php文件:
PHP教程?
PHP教程
<?php
/**
* Created by PhpStorm.
* User: yuxiu
* Date: //
* Time: :
*/
session_start(); //建立或者繼續(xù)一個會話
$season = $_SESSION['season']; //讀取會話數(shù)據(jù)
echo "<b>讀取會話</b><br/><br/>";
switch ($season) {
case '春天';
echo '現(xiàn)在是綠意盎然的春天!';
break;
case '夏天';
echo '現(xiàn)在是熱情四溢的夏天!';
break;
case '秋天';
echo '現(xiàn)在是豐收果實的秋天!';
break;
case '冬天';
echo '現(xiàn)在是白雪皚皚的冬天!';
break;
default ;
echo '對不起,會話中沒有數(shù)據(jù) 或者 不存在該對話 !';
}
?>
PHP教程在session1.php中首先使用session_start()創(chuàng)建一個會話,然后對提交的季節(jié)數(shù)據(jù)使用數(shù)組賦值的方式存儲,最后使用header()函數(shù)直接跳轉到開始.在session2.php文件中,也同樣需要session_start()函數(shù)繼續(xù)一個會話并利用session數(shù)組調(diào)用會話信息.
PHP教程3.銷毀會話
PHP教程當會話不再被使用的時候,就需要人為的銷毀它,雖然php有自動銷毀會話的功能,但這樣會使程序的效率變低.可以使用unset()函數(shù)或者session_destroy()函數(shù).
PHP教程
<?php
unset($_SESSION['season']);
?>
PHP教程? 或者:
PHP教程
<?php
session_destroy(); //注意,使用這個函數(shù)將重置session數(shù)組,即失去所有的已經(jīng)儲存的session數(shù)據(jù)
?>
轉載請注明本頁網(wǎng)址:
http://www.fzlkiss.com/jiaocheng/6261.html