国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁(yè) > 開(kāi)發(fā) > PHP > 正文

教你如何使用php session

2024-05-04 23:19:07
字體:
來(lái)源:轉(zhuǎn)載
供稿:網(wǎng)友

PHP session用法其實(shí)很簡(jiǎn)單它可以把用戶提交的數(shù)據(jù)以全局變量形式保存在一個(gè)session中并且會(huì)生成一個(gè)唯一的session_id,這樣就是為了多了不會(huì)產(chǎn)生混亂了,并且session中同一瀏覽器同一站點(diǎn)只能有一個(gè)session_id,下面我們一起來(lái)看看關(guān)于session使用方法。
如何使用session,凡是與session有關(guān)的,之前必須調(diào)用函數(shù)session_start();
為session賦值很簡(jiǎn)單,如:

復(fù)制代碼 代碼如下:


<?php
Session_start();
$Name = "這是一個(gè)Session例子";
Session_Register("Name");//注意,不要寫成:Session_Register("$Name");
Echo $_SESSION["Name"];
//之后$_SESSION["Name"]為"這是一個(gè)Session例子"
?>


在php4.2之后,可以為session直接賦值:

復(fù)制代碼 代碼如下:


<?PHP
Session_Start();
$_SESSION["name"]="value";
?>


取消session可以這樣:

復(fù)制代碼 代碼如下:


<?php
session_start();
session_unset();
session_destroy();
?>

讀取 session

PHP 內(nèi)置的 $_SESSION 變量可以很方便的訪問(wèn)設(shè)置的 session 變量。

復(fù)制代碼 代碼如下:


<?php
session_start();
echo "登記的用戶名為:".$_SESSION["username"];    //輸出 登記的用戶名為:nostop
?>


檢查變量是否被登記為會(huì)話變量 session_is_registered
語(yǔ)法:boobean session_is_registered(string name);
這個(gè)函數(shù)可檢查當(dāng)前的session之中是否已有指定的變量注冊(cè),參數(shù)name就是要檢查的變量名。成功則返回邏輯值true。

復(fù)制代碼 代碼如下:


<?php
    session_start();
    if(!session_is_registered("gender")){ //判斷當(dāng)前會(huì)話變量是否注冊(cè)
        session_register("gender");    //注冊(cè)變量
    }
    $gender="女";
    echo $_SESSION['gender'];  //女
?>

存取當(dāng)前會(huì)話名稱  session_name
語(yǔ)法:boolean session_name(string [name]);
這個(gè)函數(shù)可取得或重新設(shè)置當(dāng)前session的名稱。若無(wú)參數(shù)name則表示獲取當(dāng)前session名稱,加上參數(shù)則表示將session名稱設(shè)為參數(shù)name。

復(fù)制代碼 代碼如下:


<?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)前會(huì)話標(biāo)識(shí)號(hào)session_id
語(yǔ)法:boolean session_id(string [id]);
這個(gè)函數(shù)可取得或重新設(shè)置當(dāng)前存放session的標(biāo)識(shí)號(hào)。若無(wú)參數(shù)id則表示只獲取當(dāng)前session的標(biāo)識(shí)號(hào),加上參數(shù)則表示將session的標(biāo)識(shí)號(hào)設(shè)成新指定的id。
設(shè)置 Session 的生存期

復(fù)制代碼 代碼如下:


<?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 會(huì)有些問(wèn)題,所以我們還是手動(dòng)調(diào)用 setcookie 函數(shù)來(lái)創(chuàng)建 cookie。

復(fù)制代碼 代碼如下:


<?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)用。

復(fù)制代碼 代碼如下:


<?php
  // 設(shè)置一個(gè)存放目錄
  $savePath = "./session_save_dir/";
  // 保存一天
  $lifeTime = 24 * 3600;
  session_save_path($savePath);
  session_set_cookie_params($lifeTime);
  session_start();
  $_session["admin"] = true;
?>

<?php
session_start();    //啟動(dòng)Session
$username='nostop';
session_register('username');    //注冊(cè)一個(gè)名為username變量
echo '登記的用戶:'.$_SESSION['username'];    //登記的用戶:nostop   讀取Session變量

$_SESSION['age']=23;    //聲明一個(gè)名為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()之前不能有任何輸出.例如下面是錯(cuò)誤的.


1行
2行 <?PHP
3行 Session_Start();//之前在第一行已經(jīng)有輸出
4行 .....
5行 ?>

提示1:

凡是出現(xiàn)"........headers already sent..........",就是Session_Start()之前向?yàn)g覽器輸出信息.
去掉輸出就正常,(COOKIE也會(huì)出現(xiàn)這種錯(cuò)誤,錯(cuò)誤原因一樣)

提示2:

如果你的Session_Start()放在循環(huán)語(yǔ)句里,并且很難確定之前哪里向?yàn)g覽器輸出信息,可以用下面這種方法:
1行 <?PHP Ob_Start(); ?>
........這里是你的程序......


2:這是什么錯(cuò)誤

Warning: session_start(): open(/tmpsess_7d190aa36b4c5ec13a5c1649cc2da23f, O_RDWR) failed:....
因?yàn)槟銢](méi)有指定session文件的存放路徑.

解決方法:

(1)在c盤建立文件夾tmp
(2)打開(kāi)php.ini,找到session.save_path,修改為session.save_path= "c:/tmp"

發(fā)表評(píng)論 共有條評(píng)論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 广昌县| 涪陵区| 镇宁| 随州市| 江城| 威宁| 莆田市| 汝南县| 阿拉尔市| 荆州市| 都匀市| 西贡区| 辛集市| 八宿县| 鄢陵县| 东源县| 鹤峰县| 晋州市| 东安县| 双桥区| 博乐市| 阳信县| 肥西县| 浦东新区| 凉山| 繁峙县| 安福县| 镇远县| 湾仔区| 乌鲁木齐县| 安新县| 维西| 民权县| 金门县| 新密市| 白朗县| 枣强县| 康保县| 乌拉特前旗| 金昌市| 师宗县|