php session()函数使用方法详解
发布:smiling 来源: PHP粉丝网 添加日期:2014-02-22 10:17:00 浏览: 评论:0
php session()函数在php开发应用中有很重要的一个角色了,下面我来给初学者简单的介绍一下关于php session()函数使用方法与实例。
对比起 Cookie,Session 是存储在服务器端的会话,相对安全,并且不像 Cookie 那样有存储长度限制,本文简单介绍 Session 的使用。
由于 Session 是以文本文件形式存储在服务器端的,所以不怕客户端修改 Session 内容,实际上在服务器端的 Session 文件,PHP 自动修改 Session 文件的权限,只保留了系统读和写权限,而且不能通过 ftp 修改,所以安全得多.
由于 Session 是以文本文件形式存储在服务器端的,所以不怕客户端修改 Session 的内容,实际上在服务器端的 Session 文件,PHP自动修改 Session 文件的权限,只保留了系统读和写权限,而且不能通过 ftp 修改,所以安全很多。
实例代码如下:
- <?php
- // 启动Session
- session_start();
- // 声明一个名为 admin 的变量,并赋空值。
- $_SESSION["admin"] = null;
- ?>
- <?php
- // 启动Session
- session_start();
- // 将原来注册的某个变量销毁
- unset($_SESSION['admin']);
- // 销毁整个 Session 文件
- session_destroy();
- ?>
- <?php
- // 启动Session
- session_start();
- // 保存一天
- $lifeTime = 24 * 3600;
- setcookie(session_name(), session_id(), time() + $lifeTime, "/");
- ?>
- <?php
- // 保存一天
- $lifeTime = 24 * 3600;
- session_set_cookie_params($lifeTime);
- session_start();
- $_SESSION["admin"] = true;
- ?>
- <?php
- // 保存一天
- $lifeTime = 24 * 3600;
- // 取得当前 Session 名,默认为 PHPSESSID
- $sessionName = session_name();
- // 取得 Session ID
- $sessionID = $_GET[$sessionName];
- // 使用 session_id() 设置获得的 Session ID
- session_id($sessionID);
- session_set_cookie_params($lifeTime);
- session_start();
- $_SESSION['admin'] = true;
- ?>
- <?php
- // 设置一个存放目录
- $savePath = './session_save_dir/';
- // 保存一天
- $lifeTime = 24 * 3600;
- session_save_path($savePath);
- session_set_cookie_params($lifeTime);
- session_start();
- $_SESSION['admin'] = true;
- ?>
另外,我们还可以使用 session_set_save_handler 函数来自定义 Session 的调用方式。
PHP函数补完:session_id()
session_id()
session_id() 存取目前 session 代号。
语法:string session_id(string [id]);
本函数可取得或者重新配置目前存放 Session 的代号,若无参数 id 则表示只有取得目前 Session 的代号,加上参数则表示将 Session 代号设成新指定的 id,输入及返回均为字符串。
输出 session_id(),代码如下:
- <?php
- session_start();
- echo session_id();
- // 输出 dqr58dnuqj2gufvg4o3tmjb9v4
- ?>
设置 session_id(),代码如下:
- <?php
- session_id("NowaMagic");
- session_start();
- echo session_id();
- // 输出 NowaMagic
- ?>
session_id 恢复 session的内容
php的session是可以程序恢复的,这个和java不太一样,session的恢复机制可以实现多个应用程序session的共享,因为php的session都是以文件形式或者数据库存储的,首先是session_id的获取是通过session_id()函数获取,这个值可以进行传递。
程序恢复session,首先要知道session_id,大家通过手册可以知道session的恢复通过session_id($id);但是在恢复时要注意一个先后顺序,要得到之前session的内容,必须在session_start()之前执行session_id($id),这样才能在执行了session_start时初始化session的时候恢复到之前的内容,否则的话你得到的是一个空的session,你什么也得不到。
之前session被重新初始化了,这个和session_start()的作用有密切关系,因为session_start告诉php,session要初始化,要从session文件中反序列化session内容,所以session_start的作用就是把之前存储的文件内容反序列化,session_start序列化之前要知道session_id,如果没有就生成一个新的session_id,如果有就反序列化相应文件的内容。
Tags: session 函数 使用方法
相关文章
- ·session 的工作原理与session用法 (2013-11-12)
- ·PHP创建和使用session cookie变量(2013-11-13)
- ·session与cookie会话控制(2013-11-14)
- ·cookie和session 区别(2013-11-14)
- ·PHP 会话(session 时间设定)使用入门 (2013-11-14)
- ·关于使用session_start 出现的headers (2013-11-27)
- ·session Cannot send session cache limiter 错误提示(2013-11-28)
- ·session_start() [function.session-start]: Cannot send session cookie(2013-11-29)
- ·Warning: session_destroy() [function.session-destroy]: Trying to destroy(2013-11-29)
- ·php中session引起错误问题集锦(2013-11-30)
- ·php session永不过期的设置方法(2013-11-30)
- ·PHP中session共享和登录验证的实现方法(2013-12-02)
- ·php中session超时严格控制实例(2013-12-02)
- ·PHP中header和session_start前不能有输出的原因(2013-12-03)
- ·Deprecated: Function session_register() is deprecated(2013-12-04)
- ·Warning: session_start() [function.session-start](2013-12-04)
推荐文章
热门文章
最新评论文章
- 写给考虑创业的年轻程序员(10)
- PHP新手上路(一)(7)
- 惹恼程序员的十件事(5)
- PHP邮件发送例子,已测试成功(5)
- 致初学者:PHP比ASP优秀的七个理由(4)
- PHP会被淘汰吗?(4)
- PHP新手上路(四)(4)
- 如何去学习PHP?(2)
- 简单入门级php分页代码(2)
- php中邮箱email 电话等格式的验证(2)