热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

php学习之session

今天给大家介绍的php学习内容呢,是session。那么什么是session呢,我们如何使用session呢。

今天给大家介绍的php学习内容呢,是session。那么什么是session呢,我们如何使用session呢。
session的含义是完成一件事,从开始到结束的一些系列动作和消息。比如在网上购物,那么从登陆该网站,到选购书籍,再到结账,最后退出,这样一个往上购物的流程就可以成为一个session。我们可以理解为用户在浏览某个网站时,从进入网站到浏览器关闭所经过的这段时间内服务器对这个用户的信息记录的集合。
session控制的思想是能够在网站中根据一个session跟踪用户。php中的session是通过唯一的sessionID来驱动的。sessionID是一个加密的随机数字,由php生成,在session的生命周期中都会保存在客户端中,或者通过URL在网络中传递。
sessionID就像一把钥匙,是客户端唯一可见的信息,它允许注册一些特定的变量,因此也叫session变量。默认情况下,session变量保存在服务器的普通文件中。
如何使用session?
使用session的基本步骤:
1.开始一个session
2.注册session变量
3.使用session变量
4.注销变量并销毁session
这些步骤不一定要在同一个文件中完成,可以在很多脚本中发生。下面详细介绍下这几个步骤:
1.开始一个session。
  第一种方法,是调用session_start()函数开始一段脚本。该函数会检查是否有一个sessionID存在,如果不存在,则创建一个sessionID,并且可以通过超级全局数组$_SESSION访问这个sessionID;如果已经存在,则载入这个session变量。
  第二种方法,是使用php.ini文件中的session.auto_start选项,将php设置成当有用户访问网站的时候就自动启动一个session,不过这样就无法使用对象作为session变量。
2.注册一个session变量。
  可以使用$_SESSION创建一个session变量;
 如:$_SESSION['NAME']= "messi";
3.使用session变量。
  要使用一个session变量,必须使用session_start()函数先激活一个session,这样就可以通过$_SESSION全局数组访问这个变量了。
  当使用对象作为session变量时,在调用session_start()函数重新载入session变量之前,必须包含对该类对象的定义,否则php无法构建该session对象。
  相反,在检查是否已经设置session变量时,必须考虑安全问题,因为变量可以通过get或者post方法设置。通过检查$_SESSION数组来确定一个变量是否已经注册过。
4.注销变量与销毁session
  当使用完一个session变量后,应该将其销毁,可以通过销毁数组$_SESSION的适当元素之间注销该变量。
  如:unset($_SESSION['NAME'])
  如果要一次销毁所有的session,不能用销毁整个数组$_SESSION的方法,这样也会禁止COOKIE功能。我们可以这样解决  $_SESSION = array();
  消除了所有变量之后,还应该销毁sessionID,可以这样做 session_destroy();这样就清除sessionID了。


推荐阅读
  • 随着Linux操作系统的广泛使用,确保用户账户及系统安全变得尤为重要。用户密码的复杂性直接关系到系统的整体安全性。本文将详细介绍如何在CentOS服务器上自定义密码规则,以增强系统的安全性。 ... [详细]
  • 本文详细介绍如何安装和配置DedeCMS的移动端站点,包括新版本安装、老版本升级、模板适配以及必要的代码修改,以确保移动站点的正常运行。 ... [详细]
  • JavaScript 跨域解决方案详解
    本文详细介绍了JavaScript在不同域之间进行数据传输或通信的技术,包括使用JSONP、修改document.domain、利用window.name以及HTML5的postMessage方法等跨域解决方案。 ... [详细]
  • 搭建个人博客:WordPress安装详解
    计划建立个人博客来分享生活与工作的见解和经验,选择WordPress是因为它专为博客设计,功能强大且易于使用。 ... [详细]
  • Windows环境下Oracle数据库迁移实践
    本文详细记录了一次在Windows操作系统下将Oracle数据库的控制文件、数据文件及在线日志文件迁移至外部存储的过程,旨在为后续的集群环境部署做好准备。 ... [详细]
  • 本文详细探讨了如何根据不同的应用场景选择合适的PHP版本,包括多版本切换技巧、稳定性分析及针对WordPress等特定平台的版本建议。 ... [详细]
  • 实现Win10与Linux服务器的SSH无密码登录
    本文介绍了如何在Windows 10环境下使用Git工具,通过配置SSH密钥对,实现与Linux服务器的无密码登录。主要步骤包括生成本地公钥、上传至服务器以及配置服务器端的信任关系。 ... [详细]
  • PHP中Smarty模板引擎自定义函数详解
    本文详细介绍了如何在PHP的Smarty模板引擎中自定义函数,并通过具体示例演示了这些函数的使用方法和应用场景。适合PHP后端开发者学习。 ... [详细]
  • 本文探讨了使用Python实现监控信息收集的方法,涵盖从基础的日志记录到复杂的系统运维解决方案,旨在帮助开发者和运维人员提升工作效率。 ... [详细]
  • Java虚拟机及其发展历程
    Java虚拟机(JVM)是每个Java开发者日常工作中不可或缺的一部分,但其背后的运作机制却往往显得神秘莫测。本文将探讨Java及其虚拟机的发展历程,帮助读者深入了解这一关键技术。 ... [详细]
  • 服务器虚拟化存储设计,完美规划储存与资源,部署高性能虚拟化桌面
    规划部署虚拟桌面环境前,必须先估算目前所使用实体桌面环境的工作负载与IOPS性能,并慎选储存设备。唯有谨慎估算贴近实际的IOPS性能,才能 ... [详细]
  • 在测试软件或进行系统维护时,有时会遇到电脑蓝屏的情况,即便使用了沙盒环境也无法完全避免。本文将详细介绍常见的蓝屏错误代码及其解决方案,帮助用户快速定位并解决问题。 ... [详细]
  • 本文介绍了一个来自AIZU ONLINE JUDGE平台的问题,即清洁机器人2.0。该问题来源于某次编程竞赛,涉及复杂的算法逻辑与实现技巧。 ... [详细]
  • 深入解析Java SE、Java EE和Java Web的核心知识体系
    通过一系列图表全面解析Java SE、Java EE与Java Web的核心知识体系,帮助开发者快速掌握这些关键技术领域的要点。 ... [详细]
  • 一家位于长沙的知名网络安全企业,现面向全国诚聘高级后端开发工程师,特别欢迎具有一线城市经验的技术精英回归故乡,共创辉煌。 ... [详细]
author-avatar
小艾辰
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有