当前位置: 主页 > PHP >

session相关知识-php基础知识

时间:2012-04-12  ¦  整理:站长每日一帖  ¦  点击:次  ¦  我要收藏
Session的应用 1.Session只是在客户端保存由服务器为创建的一个Session标识符, 称为SessionID. 2.SessionID是一个既不会重复,又不容易被找到规律的,由32位 十六进制数组组成的字符串。 3.S

Session的应用

1.Session只是在客户端保存由服务器为创建的一个Session标识符,
  称为SessionID.
2.SessionID是一个既不会重复,又不容易被找到规律的,由32位
  十六进制数组组成的字符串。
3.SessionID保存在客户端的Cookie中,如果阻止Cookie的使用,那
  么可以将SessionID保存在用户浏览器地址栏中的URL中。
4.当用户请求WEB服务器时,就会把SessionID发送给服务器,再通过
  SessionID提取保存在服务器中的Session变量。
5.可以把Session中保存的变量,当做是一个用户的全局变量,同一
  用户对每个脚本的访问都共享变量。
6.当某个用户向Web服务器发送请求时,服务器首先会检查这个客户端
  的请求里是否包含一个SessionID。
7.如果包含一个SessionID,服务器则按照SessionID发送Session的
  信息检索出来。
8.如果不包含一个SessionID,服务器则为用户创建一个Session,并
  且生成一个与Session关联的一个SessionID,响应中被传送给客户
  端保存。

Session会因为两种状态自然消失:
1.当使用者关闭浏览器时,Session消失。再次访问,再次创建新的
  Session。
2.Session指定的有效期限到期。在PHP系统当中
  session.cookie_lifetime = 0,值为0表示“直到关闭浏览器”
  来设定Session有效期限,以秒为单位。当系统赋予的生命周期到期
  后,不管浏览器是否开启,Session都会自动消失。
***********************************************************
 表:会话配置选项
选项名                描述              默认值
session.auto_start  
自动启动会话,0表示禁用,1表示开启       0

session.cache_expire
为缓存中的会话页设置当前时间,单位分钟   180

session.cookie_domain
指定会话Cookie中的域                    none

session.cookie_lifetime
Cookie中的SessionID在客户机上保存的时间,
0表示延续到浏览器关闭                     0

session.cookie_path  
在会话Cookie中要设置的路径               /

session.name   
会话的名称,在客户端用作Cookie的标识名称   PHPSESSID

session.save_path
会话在服务器存储的路径                   /tmp

session.use_cookies
配置在客户端使用Cookie的会话,1标识允许     1
**********************************************************
Session的声明与使用

1.Session的设置于Cookie不同,必须先启动,在PHP中必须调用
  session_start()函数,让PHP核心程序,将和session相关的
  内建环境变量预先载入到内存中。
2.session_start()函数的语法格式:bool session_start(void)
3.session_start()函数有两个作用:
  一是,开始一个会话;二是,返回已经存在的会话。
4.session_start()函数没有参数,返回值都为true
5.使用基于Cookie的Session在开启的时候,不能有任何输出的
  内容。因为调用session_start()函数时候,会生成一个唯一的
  SessionID,需要保存在客户端电脑的Cookie中。
6.已经session_start()函数开启了Session,不会再创建一个新的
  SessionID。
**********************************************************
注册SESSION变量

//注册一个SESSION变量,并且赋值;
$_session["username"]="swj";
$_session["password"]="123456";

username,$_session关联数组中的键名,于普通的变量名相同的
命名规则。
***********************************************************
存放到服务器的文件夹里面的的文件,保存的Session的变量文件。
内容格式:
变量名|类型:长度:值;  每个变量都使用的相同结构保存

username|s:3:"swj";password|s:6:"123456"
***********************************************************
删除指定SESSION变量

//销毁和当前SESSION有关的所有资料,但是没有释放和当前SESSION
  相关的变量,也不会删除客户端上的SESSION ID。
语法格式:bool session_destroy(void)
返回值:成功返回TRUE,失败返回FALSE

//unset释放当前SESSION中注册的单个变量:
语法格式:usert($_session["username"]);
          usert($_session["password"]);

usert($_session)删除不了SESSION中的注册的所有变量

如果删除$_session所有变量:$_session=array();

php默认的Session是基于Cookie,注销session,注销cookie

获取session名称seesion_name()函数获取SESSION名称。

**********************************************************
SESSION的缓冲控制方式

session_cache_limiter()函数有1个参数,是可选参数,当函数
没有参数时,返回当前缓存的管理方式,当设置参数时,可根据
实际情况选择下面3种值:
nocache:禁止客户端和中间路由器缓存本页。
public:允许客户端和中间路由器缓存本页。
private:仅允许客户端缓存本页,不允许中间路由器缓存本页。


session_set_cookie_params()函数,用于设置保存SESSION名称的COOKIE,其有5个参数:
第1个参数是必选参数,其值是COOKIE的有效期,单位为秒。当这个COOKIE失效后,与之对应的SESSION也会失效。
第2个参数是可选参数,其值是COOKIE的有效路径,当COOKIE在指定路径下有效时,与之对应的SESSION才可以使用。
第3个参数是可选参数,其值是COOKIE的有效域名,当COOKIE在指定域名下有效时,与之对应的SESSION才可以使用。
第4个参数是可选参数,用于设置是否使用加密方式传输COOKIE值,默认值是FALSE。
第5个参数是可选参数,用于设置是否只使用HTTP协议访问COOKIE值,如果其值是1或TRUE,其他脚本语言,如:JavaScrrpt就不能访问这个COOKIE,这个参数默认的值是FALSE。

 

SESSION的跨页传递
<?php
//初始页
session_start();
$_SESSION["data"]="SESSION数据";
echo "<a href='id.php?sid=".session_id()."'>传递ID</a>";
?>

<?php
//id.php
$sid=$_GET["sid"];
session_id($sid);
session_start();
print_r($_SESSION);
?>

 


 


 

(如果您觉得本站不错,请告诉身边的朋友,或转载到论坛、百度知道、贴吧等,记得带网址哟!)

    阅读过 session相关知识-php基础知识 的网友还阅读了:

    

    评论or提问点击发表评论或提问!

    如果您有问题,请先查找解决办法,无法解决后请在此提问并将问题描述清楚!
    • 昵称 (必填)
    • 电子邮箱 (我们会为您保密) (必填)
    • 网站URL
    • 点击我更换图片
    

    最新评论内容

    
    回到顶部