php Session函数及用法

其实我就是把手册抄一下,然后每个都试试然后写出来,方便自己查阅滴,谁让咱刚学呢。Session大概有12个函数分别是:

session_start: 初始 session。
session_destroy: 结束 session。
session_unset: 释放session内存。
session_name: 存取目前 session 名称。
session_module_name: 存取目前 session 模块。
session_save_path: 存取目前 session 路径。
session_id: 存取目前 session 代号。
session_register: 注册新的变量。
session_unregister: 删除已注册变量。
session_is_registered: 检查变量是否注册。
session_decode: Session 资料解码。
session_encode: Session 资料编码。
还有个全局变量就是:$_SESSION

我暂时不考虑版本问题,需要这方面信息的请查看这里http://www.phpv.net/html/292.html

1.session_start()
这个函数摘要用来开始操作session的必要语句,必须再最前(如果有html必须在html最前,因为他也是启动之前不能有任何输出),如果当前客户已经有session的写入,就连接上这个原有的。

2.session_destroy()
这个函数用来删除当前用户对应的session文件以及释放session id,内存中的$_SESSION变量内容依然保留。如果需要彻底终结session请先运行下面的函数然后运行这个。

3.session_unset()
这个函数可以释放当前在内存中已经创建的所有$_SESSION变量,但不删除session文件以及不释放对应的session id,配合上面的函数可以彻底终结session。

4.session_name(string [name])
可以获取或配置session_name,也就是当前session的名称。

[php]
session_name("xuandun");
echo "现在是:".session_name();
[/php]

5.session_module_name(string [module])
本函数可取得或者重新配置目前 Session 的模块。若无参数 module 则表示只获取目前 Session 的模块,加上参数则表示将 Session 模块设为参数 module。

6.session_save_path(string [path])
本函数可取得或者重新配置目前存放 Session 的路径。若无参数 path 则表示只有取得目前 Session 的路径目录名,加上参数 path 则表示将 Session 存在新的 path 上。(保证目录存在并且注意权限)

7.string session_id(string [id])
本函数可取得或者重新配置目前存放 Session 的代号。若无参数 id 则表示只有取得目前 Session 的代号,加上参数则表示将 Session 代号设成新指定的 id。输入及返回均为字符串。

8.session_register(string name)
本函数在全域变量中增加一个变量到目前的 Session 之中。参数 name 即为欲加入的变量名。

9.session_unregister(string name)
本函数在目前的 Session 之中删除全域变量上的变量。参数 name 即为欲删除的变量名。

10.session_is_registered(string name)
本函数可检查目前的 Session 之中是否已有指定的变量注册。参数 name 即为欲检查的变量名。

11.session_decode(string data)
本函数可将 Session 资料解码。参数 data 即为欲解码的资料。成功则返回 true 值。

12.session_encode(void)
本函数可将 Session 资料编码,编码以 ZEND 引擎做哈稀编码。本函数没有参数。成功则返回 true 值

13.$_SESSION
获取储存的session值例如$_SESSION['userid']

因为我也不是很懂,从3项以后我都没实际用到过。下面我简单写个例子来实现简单的session验证

<?php
session_start();
switch ( $_GET['action'] ){
case "loginif";
//登陆验证,假定session储存的秘密应该等于123才为正确
if ($_SESSION['pass']=="123"){echo "密码正确 您可以执行注销";}else{echo "密码错误,您可以重新登陆";}
break;
case "logout";
//注销登陆
session_unset();
session_destroy();
echo "注销成功!可以判断一下密码是否正确来看看是不是成功注销";
break;
case "login";
//写入session以供验证,
$pass="123";//密码
$_SESSION['pass']=$pass;
echo "写入登陆密码了 去判断密码成功与否吧。";
break;
}
?>
<p>假定本页名为temp.php </p>
<p><a href="temp.php?action=login">用户进行登陆post,程序处理写入session</a></p>
<p><a href="temp.php?action=loginif">判断用户密码是否正确</a></p>
<p><a href="temp.php?action=logout">登陆成功的用户注销登陆</a></p>

php

已有 3 条评论

  1. caoyanli caoyanli

    php新手

  2. 一般注销SESSION 我都用 unset($_SESSION[$NAME])
    织梦是直接使用 $_SESSION = array();

    1. 炫盾 炫盾

      SESSION的正确注销函数式unset()或session_destroy(),怎么说呢虽然你的方式也可以,但是遵守规则总是无错的。

添加新评论