PHP session用法其實很簡單它能夠把用戶提交的數據以全局變量形式保存在一個session中而且會生成一個惟一的session_id,這樣就是爲了多了不會產生混亂了,而且session中同一瀏覽器同一站點只能有一個session_id,下面咱們一塊兒來看看關於session使用方法。
如何使用session,凡是與session有關的,以前必須調用函數session_start();
爲session賦值很簡單,如:php
在php4.2以後,能夠爲session直接賦值:瀏覽器
取消session能夠這樣:cookie
讀取 sessionsession
PHP 內置的 $_SESSION 變量能夠很方便的訪問設置的 session 變量。函數
檢查變量是否被登記爲會話變量 session_is_registered
語法:boobean session_is_registered(string name);
這個函數可檢查當前的session之中是否已有指定的變量註冊,參數name就是要檢查的變量名。成功則返回邏輯值true。spa
存取當前會話名稱 session_name
語法:boolean session_name(string [name]);
這個函數可取得或從新設置當前session的名稱。若無參數name則表示獲取當前session名稱,加上參數則表示將session名稱設爲參數name。code
存取當前會話標識號session_id
語法:boolean session_id(string [id]);
這個函數可取得或從新設置當前存放session的標識號。若無參數id則表示只獲取當前session的標識號,加上參數則表示將session的標識號設成新指定的id。
設置 Session 的生存期string
session_set_cookie_params:設置 Session 的生存期的,該函數必須在 session_start() 函數調用以前調用。
若是客戶端使用 IE 6.0 , session_set_cookie_params(); 函數設置 Cookie 會有些問題,因此咱們仍是手動調用 setcookie 函數來建立 cookie。it
設置 Session 文件的保存路徑
session_save_path() :必須在 session_start() 函數調用以前調用。io
<?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:在調用Session_Start()以前不能有任何輸出.例以下面是錯誤的.
1行
2行 <?PHP
3行 Session_Start();//以前在第一行已經有輸出
4行 .....
5行 ?>
提示1:
凡是出現"........headers already sent..........",就是Session_Start()以前向瀏覽器輸出信息.
去掉輸出就正常,(COOKIE也會出現這種錯誤,錯誤緣由同樣)
提示2:
若是你的Session_Start()放在循環語句裏,而且很難肯定以前哪裏向瀏覽器輸出信息,能夠用下面這種方法:
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"