您好,登錄后才能下訂單哦!
這篇文章給大家分享的是有關(guān)使用php session的方法的內(nèi)容。小編覺得挺實用的,因此分享給大家做個參考,一起跟隨小編過來看看吧。
PHP session用法其實很簡單它可以把用戶提交的數(shù)據(jù)以全局變量形式保存在一個session中并且會生成一個唯一的session_id,這樣就是為了多了不會產(chǎn)生混亂了,并且session中同一瀏覽器同一站點只能有一個session_id,下面我們一起來看看關(guān)于session使用方法。
如何使用session,凡是與session有關(guān)的,之前必須調(diào)用函數(shù)session_start();
為session賦值很簡單,如:
<?php
Session_start();
$Name = "這是一個Session例子";
Session_Register("Name");//注意,不要寫成:Session_Register("$Name");
Echo $_SESSION["Name"];
//之后$_SESSION["Name"]為"這是一個Session例子"
?>
在php4.2之后,可以為session直接賦值:
<?PHP
Session_Start();
$_SESSION["name"]="value";
?>
取消session可以這樣:
<?php
session_start();
session_unset();
session_destroy();
?>
讀取 session
PHP 內(nèi)置的 $_SESSION 變量可以很方便的訪問設(shè)置的 session 變量。
<?php
session_start();
echo "登記的用戶名為:".$_SESSION["username"]; //輸出 登記的用戶名為:nostop
?>
檢查變量是否被登記為會話變量 session_is_registered
語法:boobean session_is_registered(string name);
這個函數(shù)可檢查當(dāng)前的session之中是否已有指定的變量注冊,參數(shù)name就是要檢查的變量名。成功則返回邏輯值true。
<?php
session_start();
if(!session_is_registered("gender")){ //判斷當(dāng)前會話變量是否注冊
session_register("gender"); //注冊變量
}
$gender="女";
echo $_SESSION['gender']; //女
?>
存取當(dāng)前會話名稱 session_name
語法:boolean session_name(string [name]);
這個函數(shù)可取得或重新設(shè)置當(dāng)前session的名稱。若無參數(shù)name則表示獲取當(dāng)前session名稱,加上參數(shù)則表示將session名稱設(shè)為參數(shù)name。
<?php
$sessionName = session_name(); //取得當(dāng)前 Session 名,默認(rèn)為 PHPSESSID
$sessionID = $_GET[$sessionName]; //取得 Session ID
session_id($sessionID); //使用 session_id() 設(shè)置獲得的 Session ID
?>
存取當(dāng)前會話標(biāo)識號session_id
語法:boolean session_id(string [id]);
這個函數(shù)可取得或重新設(shè)置當(dāng)前存放session的標(biāo)識號。若無參數(shù)id則表示只獲取當(dāng)前session的標(biāo)識號,加上參數(shù)則表示將session的標(biāo)識號設(shè)成新指定的id。
設(shè)置 Session 的生存期
<?php
session_start
// 保存一天
$lifeTime = 24 * 3600;
setcookie(session_name(), session_id(), time() + $lifeTime, "/");
?>
session_set_cookie_params:設(shè)置 Session 的生存期的,該函數(shù)必須在 session_start() 函數(shù)調(diào)用之前調(diào)用。
如果客戶端使用 IE 6.0 , session_set_cookie_params(); 函數(shù)設(shè)置 Cookie 會有些問題,所以我們還是手動調(diào)用 setcookie 函數(shù)來創(chuàng)建 cookie。
<?php
// 保存一天
$lifeTime = 24 * 3600;
session_set_cookie_params($lifeTime);
session_start();
$_session["admin"] = true;
?>
設(shè)置 Session 文件的保存路徑
session_save_path() :必須在 session_start() 函數(shù)調(diào)用之前調(diào)用。
<?php
// 設(shè)置一個存放目錄
$savePath = "./session_save_dir/";
// 保存一天
$lifeTime = 24 * 3600;
session_save_path($savePath);
session_set_cookie_params($lifeTime);
session_start();
$_session["admin"] = true;
?>
<?php
session_start(); //啟動Session
$username='nostop';
session_register('username'); //注冊一個名為username變量
echo '登記的用戶:'.$_SESSION['username']; //登記的用戶:nostop 讀取Session變量
$_SESSION['age']=23; //聲明一個名為age的變量,并賦值
echo '年齡:'.$_SESSION['age']; //年齡:23
session_unregister('username'); //注銷Session變量
echo $_SESSION['username']; //空
echo $_SESSION['age'];//23
unset($_SESSION['age']); //注銷Session變量
echo '登記的用戶:'.$_SESSION['username']; //空
echo '年齡:'.$_SESSION['age']; //空
?>
注意:
1:在調(diào)用Session_Start()之前不能有任何輸出.例如下面是錯誤的.
1行
2行 <?PHP
3行 Session_Start();//之前在第一行已經(jīng)有輸出
4行 .....
5行 ?>
提示1:
凡是出現(xiàn)"........headers already sent..........",就是Session_Start()之前向瀏覽器輸出信息.
去掉輸出就正常,(COOKIE也會出現(xiàn)這種錯誤,錯誤原因一樣)
提示2:
如果你的Session_Start()放在循環(huán)語句里,并且很難確定之前哪里向瀏覽器輸出信息,可以用下面這種方法:
1行 <?PHP Ob_Start(); ?>
........這里是你的程序......
2:這是什么錯誤
Warning: session_start(): open(/tmpsess_7d190aa36b4c5ec13a5c1649cc2da23f, O_RDWR) failed:....
因為你沒有指定session文件的存放路徑.
解決方法:
(1)在c盤建立文件夾tmp
(2)打開php.ini,找到session.save_path,修改為session.save_path= "c:/tmp"
感謝各位的閱讀!關(guān)于“使用php session的方法”這篇文章就分享到這里了,希望以上內(nèi)容可以對大家有一定的幫助,讓大家可以學(xué)到更多知識,如果覺得文章不錯,可以把它分享出去讓更多的人看到吧!
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。