简单PHP会话(session)说明
现在程序员愈发的不容易了,想要精通,必然要寻本溯源,这其实与目前泛滥的愈发高级的语言以及众多的框架刚好相反,因为它们在尽可能的掩盖本源使其简单,个人称之为程序员学习悖论。
注:作者接触web开发和php两周左右,以下内容适合初学者。
1、导读
2、会话(Session)说明
a. Session的由来
b. Session能干什么用
3、PHP中Session的使用
a. php中session基本用法
Session的工作流程很简单。当开始一个Session时,PHP 会尝试从请求中查找Session ID (通常通过Session cookie), 如果请求中不包含Session ID 信息,PHP 就会创建一个新的Session。 Session开始之后,PHP 就会将Session中的数据设置到 $_SESSION变量中。 当 PHP 停止的时候,它会自动读取$_SESSION中的内容,并将其进行序列化, 然后发送给会话保存管理器器来进行保存。默认情况下,PHP 使用内置的文件Session保存管理器(files)来完成Session的保存。 也可以通过配置项session.save_handler(php.ini中配置项目)来修改所要采用的Session保存管理器。 对于文件Session保存管理器,Session会话数据保存到配置项session.save_path (php.ini中配置项目)所指定的位置。可以通过调用函数session_start来手动开始一个会话。 如果配置项session.auto_start 设置为1, 那么请求开始的时候,Session会自动开始。PHP 脚本执行完毕之后,session会自动关闭。 同时,也可以通过调用函数session_wirte_close() 来手动关闭会话。
b. php中session信息在php.ini中配置
这部分内容放在这里说是因为,不说明前面问题,鬼知道php.ini中的配置是什么东西。 上面提到的session.save_handler和session.save_path,这两个就是php.ini中的配置项目,这里面这块不细说,因为php手册实在是太详细了。本文默认模式是files。
c. php中的session机制
2. usset($_SESSION); //这会删除所有的$_SESSION数据,刷新后,有COOKIE传过来,但是没有数据。
3. session_destroy(); //删除$_SESSION 删除session文件以及session_id
附录,引用网络上的一段代码,作为结尾吧。
<span style="white-space:pre"> </span>//SESSION初始化的时候调用
function open($save_path, $session_name)
{
global $sess_save_path;
$sess_save_path=$save_path;
return(true);
} //关闭的时候调用
function close()
{
return(true);
} function read($id)
{
global $sess_save_path;
$sess_file="$sess_save_path/sess_$id";
return (string) @file_get_contents($sess_file);
}
//脚本执行结束之前,执行写入操作
function write($id,$sess_data)
{ global$sess_save_path; $sess_file="$sess_save_path/sess_$id";
if ($fp= @fopen($sess_file,"w")) {
$return=fwrite($fp,$sess_data);
fclose($fp);
return$return;
} else {
return(false);
} } function destroy($id)
{
global $sess_save_path; $sess_file="$sess_save_path/sess_$id";
return(@unlink($sess_file));
} function gc($maxlifetime)
{
global$sess_save_path; foreach (glob("$sess_save_path/sess_*") as$filename) {
if (filemtime($filename) +$maxlifetime<time()) {
@unlink($filename);
}
}
return true;
}
简单PHP会话(session)说明的更多相关文章
- http 会话(session)详解
会话(session)是一种持久网络协议,在用户(或用户代理)端和服务器端之间创建关联,从而起到交换数据包的作用机制 一.查看session id 可利用相关工具,比如firebug,httpwatc ...
- 网络基础 http 会话(session)详解
http 会话(session)详解 by:授客 QQ:1033553122 会话(session)是一种持久网络协议,在用户(或用户代理)端和服务器端之间创建关联,从而起到交换数据包的作用机制 一. ...
- webview HttpClient 怎么保持会话session统一
cookies session均为key---value的形式展示, 1. session是存储在服务端,并有一块区域控件存储用户信息,主要是为了判断该用户是否登录,在客户端采用httpC ...
- Tensorflow会话Session
转载自: http://blog.csdn.net/Hanging_Gardens/article/details/72784392 https://www.cnblogs.com/hypnus-ly ...
- Java通过遍历sessionId获取服务器所有会话session
Servlet2.1之后不支持SessionContext里面getSession(String id)方法,也不存在遍历所有会话Session的方法.但是,我们可以通过HttpSessionList ...
- jfc在jsp页面画图,不将图片存在服务器端,只存入会话session(可用)
jfc在jsp页面画图,不将图片存在服务器端,只存入会话session.其中主要用到jfc的一个servlet类. <%@ page contentType="text/html;ch ...
- Oracle数据库的连接模式connection Mode、连接connection与会话session
数据库的连接模式Connection Mode: Dedicated Server Mode(专有模式) 当用户发出请求时,如远程的client端通过监听器连接数据库上,ORACLE的服务器端会启用一 ...
- MyBatis之会话Session原理
MyBatis 之会话 Session 执行逻辑 1.SQL 会话工厂构建器类 SqlSessionFactoryBuilder 的 build 方法用于构建 SqlSessionFactory 类的 ...
- 使用SpringSession管理分布式系统的会话Session
在我方供应链项目分布式部署的环境下,需要在统一网关服务中管理访问的Session,即无论访问请求路由到哪一个网关服务环境,使用的都是相同的HttpSession,这样就保证了在用户登录之后,能够使用统 ...
随机推荐
- Key Components and Internals of Spring Boot Framework--转
原文地址:http://www.journaldev.com/7989/key-components-and-internals-of-spring-boot-framework In my prev ...
- IOS开发-KVO
一.什么是kvo? key-value observing,观察者模式 观察者,观察对象属性的变化,当被观察者该属性发生变化时,观察者会接收到通知,可以在回调函数中做相应的处理 二.有什么作用? 变化 ...
- JavaScript垃圾回收(二)——垃圾回收算法
一.引用计数(Reference Counting)算法 Internet Explorer 8以下的DOM和BOM使用COM组件所以是引用计数来为DOM对象处理内存,引用计数的含义是跟踪记录每个值被 ...
- 基于纯 CSS3 技术实现美观的标签云效果
标签云是博客的标配功能,能够清晰的呈现博客的各个关键词和主题.在这个效果中,您将学习如何使用 CSS3 技术创建一个效果精美的标签云效果. 作为实验项目,使用了 CSS3 渐变,阴影和最重要的的 CS ...
- Admin Panel – 非常漂亮的后台管理系统模板
网站或者应用系统的管理后台的设计虽然不像前台界面那样要求设计精美,但是也需要有清晰的管理模块划分,下面分享的这个后台管理模板的设计非常漂亮,特别是导航部分,头部还有未读的短消息和提醒的条数显示.赶紧下 ...
- CSS 魔法系列:纯 CSS 绘制图形(各种形状的钻石)
我们的网页因为 CSS 而呈现千变万化的风格.这一看似简单的样式语言在使用中非常灵活,只要你发挥创意就能实现很多比人想象不到的效果.特别是随着 CSS3 的广泛使用,更多新奇的 CSS 作品涌现出来. ...
- Webydo:一款在线自由创建网站的 Web 应用
Webydo 是一款专业的在线建站应用,使平面设计师可以创建和管理 HTML 网站,而无需编写代码.设计人员可以设计任何类型网站,只需要点击按钮,就能够发布先进的 HTML 网站. 你可以控制所有的设 ...
- Android抓包方法(二)之Tcpdump命令+Wireshark
Android抓包方法(二) 之Tcpdump命令+Wireshark 前言 做前端测试,基本要求会抓包,会分析请求数据包,查看接口是否调用正确,数据返回是否正确,问题产生是定位根本原因等.学会抓包分 ...
- Elasticsearch集群管理
ES通过设置[节点的名字]和[集群的名字],就能自动的组织相同集群名字的节点加入到集群中,并使很多的技术对用户透明化. 如果用户想要管理查看集群的状态,可以通过一些REST API来实现. 其他的ES ...
- 关于WEB Service&WCF&WebApi实现身份验证之WEB Service篇
在这个WEB API横行的时代,讲WEB Service技术却实显得有些过时了,过时的技术并不代表无用武之地,有些地方也还是可以继续用他的,我之所以会讲解WEB Service,源于我最近面试时被问到 ...