教你如何使用php session |
本文标签:php,session PHP session用法其实很简单它可以把用户提交的数据以全局变量形式保存在一个session中并且会生成一个唯一的session_id,这样就是为了多了不会产生混乱了,并且session中同一浏览器同一站点只能有一个session_id,下面我们一起来看看关于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 内置的 $_SESSION 变量可以很方便的访问设置的 session 变量 。 复制代码 代码如下: <?php session_start(); echo "登记的用户名为:".$_SESSION["username"]; //输出 登记的用户名为:nostop ?> 检查变量是否被登记为会话变量 session_is_registered 语法:boobean session_is_registered(string name); 这个函数可检查当前的session之中是否已有指定的变量注册,参数name就是要检查的变量名 。成功则返回逻辑值true 。 复制代码 代码如下: <?php session_start(); if(!session_is_registered("gender")){ //判断当前会话变量是否注册 session_register("gender"); //注册变量 } $gender="女"; echo $_SESSION[gender]; //女 ?> 存取当前会话名称 session_name 复制代码 代码如下: <?php $sessionName = session_name(); //取得当前 Session 名,默认为 PHPSESSID $sessionID = $_GET[$sessionName]; //取得 Session ID session_id($sessionID); //使用 session_id() 设置获得的 Session ID ?> 存取当前会话标识号session_id 复制代码 代码如下: <?php session_start // 保存一天 $lifeTime = 24 * 3600; setcookie(session_name(), session_id(), time() + $lifeTime, "/"); ?> session_set_cookie_params:设置 Session 的生存期的,该函数必须在 session_start() 函数调用之前调用 。 如果客户端使用 IE 6.0 , session_set_cookie_params(); 函数设置 Cookie 会有些问题,所以我们还是手动调用 setcookie 函数来创建 cookie 。 复制代码 代码如下: <?php // 保存一天 $lifeTime = 24 * 3600; session_set_cookie_params($lifeTime); session_start(); $_session["admin"] = true; ?> 设置 Session 文件的保存路径 复制代码 代码如下: <?php // 设置一个存放目录 $savePath = "./session_save_dir/"; // 保存一天 $lifeTime = 24 * 3600; session_save_path($savePath); session_set_cookie_params($lifeTime); session_start(); $_session["admin"] = true; ?> <?php $_SESSION[age]=23; //声明一个名为age的变量,并赋值 session_unregister(username); //注销Session变量 unset($_SESSION[age]); //注销Session变量 注意: 1:在调用Session_Start()之前不能有任何输出.例如下面是错误的.
提示1: 凡是出现"........headers already sent..........",就是Session_Start()之前向浏览器输出信息. 提示2: 如果你的Session_Start()放在循环语句里,并且很难确定之前哪里向浏览器输出信息,可以用下面这种方法:
Warning: session_start(): open(/tmpsess_7d190aa36b4c5ec13a5c1649cc2da23f, O_RDWR) failed:.... 解决方法: (1)在c盘建立文件夹tmp |