首页 > 代码库 > php-session的使用(学习笔记,仅供参考)
php-session的使用(学习笔记,仅供参考)
1、session是服务器端技术,利用这个技术,服务器在运行时可以为每个用户的浏
览器创建一个共/独享的session文件,由于session为用户浏览器独享,所以用户
再去访问服务器中的其他web共享资源时,其他web资源再从用户各自的session中
取出数据为用户服务
当用户打开浏览器,访问某个网站时操作session时,服务器就会为该浏览器分
配一个保存session信息的文件,该文件被这个浏览器独自访问
2、细节问题
2.1 默认情况下session文件将会保存在c:/window/temp;
2.2 session数据默认1440s(24分钟)失效;这个失效时间可以通过php的配
置php.ini文件设置【session.gc_maxlifetime=设置的时间(默认以秒
为单位);】 这个时间也可以成为session的生存时间,它的意思
是session在连续的 1440s内不使用就会失效,但一 旦被使用,这个时间
就会重新从0开始计算
2.3 修改session文件的存放路径,在php.ini文件修改:
;session.save_path="/tmp"的下一行输入
session.save_path="自定义路径"【注意这句代码前不能有分号;appache
重启才生效】
2.4 在web开发中,服务器可以为每个用户浏览器创建一个超全局变
量,$_SESSION,注意:一个浏览器独占一个$_SESSION(默认情况下
)。因此,在需要保存用户数据时,服务器程序可以把用户数据写到用户浏览器独
占的session文件中,当用户使用浏览器访问其他php页面时,其他php页面可以从
$_SESSION中取出该用户数据,为用户服务
3、session的基本用法:
3.1 session必须先初始化才能使用
session_start();
session文件可以存放多个键值对key<=>value,但键值不能相同
如果要获取的session数据是对象时一定要先声明一下这个对象的类的信
息
一个会话对应一个session,浏览器从打开到关闭是一个session
3.2如何保存session数据
<?php
//1、初始化session:
session_start();
//name是键值key;shunping指value;
$_SESSION[‘name‘]="shunping"; //session文件中可以保存
double,integer,
//boolarray,object类型的数据
$_SESSION[‘age‘]=100;//保存integer bool型
$-SESSION[‘isboy‘]=true;
//保存;数组
$arr=array(‘beijing‘,‘tianjjing‘,‘nanjing‘);
$_SESSION[‘ARR‘]=$arr;
//保存一个对象
class Dog{
private $name;
private $age;
private $intro;
function _construct($name,$age,$intro){
$this->name=$name;
$this->age=$age;
$this->intro=$intro;
}
}
$dog=new Dog(‘欢欢‘,‘5‘,‘他是一只可爱的小狗‘);
$_SESSION[‘MYDOG‘]=$dog;
echo "保存成功!";
?>
3.3 如何获取session数据
<?php
//初始化
session_start();
//获取所有session数据并输出
print_r($_SESSION);
//通过键值获取对应的某个session值
echo $_SESSION[‘键值‘];
//获取数据是对象的session数据时一定要先声明一下类的定义
//先声明一下类的定义
class Dog{
private $name;
private $age;
private $intro;
function _construct($name,$age,$intro){
$this->name=$name;
$this->age=$age;
$this->intro=$intro;
}
public function getName(){
return $this->name;
}
}
$object=$_SESSION[‘键值‘];
echo $object->getName();
?>
3.4 更新session数据
session_start();
$_SESSION[‘键值‘]=value;//根据键值去更新对应的值
3.5 手动删除session数据
session_start();
//删除某个键值对
unset($_SESSION[‘键值‘]);
//删除与这个浏览器对应的所有session文件,一个会话对应一个session
,浏览器从打开到关闭是一个session
session_destrory();
3.6 系统删除session数据
session数据默认1440s(24分钟)失效;这个失效时间可以通过php的配
置php.ini文件设置【session.gc_maxlifetime=设置的时间(默认以
秒为单位);】这个时间也可以成为session的生存时间,它的意思
是session在连续的 1440s内不使用就会失效,但一 旦被使用,这个
时间就会重新从0开始计算
4、session与cookie的区别:
4.1 cookie是把用户的数据写下用户的浏览器。
4.2 session是把用户的数据写在用户独占的$_SESSION中,存在服务器的某
个路径
4.3 $在使用$_SESSION前要保证session被初始化,具体的方法有:
4.3.1 先调用session_start();
4.3.2配置php.ini文件中的 session.auto_start=1(不推荐,会影响效
率);
4.4 服务器实现,一个session文件一次会话服务的原理:
5、每个session文件都有自己的sessionid;所以
5.1 获取sessionid的方法:$sessionid=session_id();
5.2 设置当前session文件的sessionid的方法:session_id(“id值”);
5.3 要创建一个自己定义id的session文件,代码如下
session_id(“id值”);
session_start();
php-session的使用(学习笔记,仅供参考)