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();

时间: 2024-08-08 01:09:53

php-session的使用(学习笔记,仅供参考)的相关文章

JAVA学习路线-仅供参考

点击放大无比清晰 或者右键保存至你的电脑 以下是原路线图 ==============================第一阶段================================= ==============================第二阶段================================= ==============================第三阶段================================= =================

OSPFv2和OSPFv3异同点(厂商:huawei)版权所属:Vincent-yang未经允许禁止用于商用,仅供参考。

版权所属:Vincent-yang未经允许禁止用于商用,仅供参考. 内容如果存在错误,请大家斧正. 联系邮箱:[email protected] 主要用于大家共同学习交流,大家可以多多评论,一起讨论技术. 原文地址:https://www.cnblogs.com/yang1647229887/p/11508825.html

BGP无效路由场景(厂商:huawei)版权所属:Vincent-yang未经允许禁止用于商用,仅供参考。

版权所属:Vincent-yang未经允许禁止用于商用,仅供参考. 内容如果存在错误,请大家斧正. 联系邮箱:[email protected] 主要用于大家共同学习交流,大家可以多多评论,一起讨论技术. 原文地址:https://www.cnblogs.com/yang1647229887/p/11508719.html

BGP负载均衡(厂商:huawei)版权所属:Vincent-yang未经允许禁止用于商用,仅供参考。

版权所属:Vincent-yang未经允许禁止用于商用,仅供参考. 内容如果存在错误,请大家斧正. 联系邮箱:[email protected] 主要用于大家共同学习交流,大家可以多多评论,一起讨论技术 原文地址:https://www.cnblogs.com/yang1647229887/p/11508799.html

Ubuntu 12.04 分区方案(仅供参考)

Ubuntu 12.04 分区方案(仅供参考) 总空间大小:50G 目录 建议大小 实际大小 格式 描述 / 10G~20G 10G ext4 根目录 swap <2048M 1G swap 交换空间 /boot 200M左右 100M ext4 Linux的内核及引导系统程序所需要的文件,比如 vmlinuz initrd.img文件都位于这个目录中.在一般情况下,GRUB或LILO系统引导管理器也位于这个目录:启动撞在文件存放位置,如kernels,initrd,grub. /tmp 5G左

四套写入方案(仅供参考)

四套写入方案 第一套:字节流读取写入方案 FileInputStream :字节流方式读取文本文件 FileOutputStream:字节流写入硬盘 第二套:字符流读取写入方案 FileReader:字符流读取文本 FileWriter:字符流写入文本 第三套: BufferedReader:自定义缓存大小 BufferedWriter:写入文本 一般和FileReader和FileWriter结合使用 第四套:可以读取二进制(img图片等 ) DataInputStream:将本地的img加载

信息与通信工程——重要国际学术会议和国际顶级期刊(仅供参考)

一.信息与通信工程的重要国际学术会议 主要包含两类: A类会议:本学科最顶尖级水平的国际会议: B类会议:学术水平较高.组织工作成熟.按一定时间间隔系列性召开的国际会议. A类会议(序号不表示优先顺序) 序号 / 英文名称 / 英文简称 / 中文名称 / 备注 1.IEEE International Conference on Acoustics, Speech and Signal Processing /  ICASAP /     IEEE 声学.语音和信号处理国际会议 2.IEEE I

Unity上一页下一页切换功能实现源码(仅供参考)

在做项目时我们有时需要实现切换上一页下一页图片,切换上一首下一首歌曲等等类似的功能.这里写了个简单的实现源码(仅供参考),要是有更好的方法欢迎提出来,共同进步~ 以切换上一页下一页图片为例: using UnityEngine; using System.Collections; using UnityEngine.UI; public class PanoramaManager : MonoBehaviour { //图片存放数组 Texture2D[] arr; //下一张按钮计数索引 in

开发问题---数据库字段前出现“—”(保存留用,仅供参考)

开发时数据调用往往会用到占位符,然而刚开始使用很容易碰见sql语句在SQLServer中查询时显示"-",如下代码: #region 先判断是否有记录,再确定使用哪条命令 //查询数据库 20140713 commandText = "use zzbjcdzz select *" + "from [T_VillageBasicInfo] " + "where ltrim(rtrim([code]))='{0}' "; //注意

Django开发的简单CMDB系统(仅供参考)

自己基于django开发的一个简单机房机柜CMDB系统,仅供参考.欢迎在下面留言,提出修改意见. 可实现增删改查. 权限未做,很多功能都没做,只做一个最基本的,初学. 前端模板用的inspinia2.5,和jumpserver用的一样的模块,所以看着差不多.模板可自行百度搜索. 放到pycharm或者linux环境下,配置好,运行就可以. domo 登录:http://42.62.6.54:8001/index.html  ,默认用户名hequan,密码123456. 下载链接:http://p