热门标签 | 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了。


推荐阅读
  • 本文介绍了Python高级网络编程及TCP/IP协议簇的OSI七层模型。首先简单介绍了七层模型的各层及其封装解封装过程。然后讨论了程序开发中涉及到的网络通信内容,主要包括TCP协议、UDP协议和IPV4协议。最后还介绍了socket编程、聊天socket实现、远程执行命令、上传文件、socketserver及其源码分析等相关内容。 ... [详细]
  • 如何实现织梦DedeCms全站伪静态
    本文介绍了如何通过修改织梦DedeCms源代码来实现全站伪静态,以提高管理和SEO效果。全站伪静态可以避免重复URL的问题,同时通过使用mod_rewrite伪静态模块和.htaccess正则表达式,可以更好地适应搜索引擎的需求。文章还提到了一些相关的技术和工具,如Ubuntu、qt编程、tomcat端口、爬虫、php request根目录等。 ... [详细]
  • 本文详细介绍了SQL日志收缩的方法,包括截断日志和删除不需要的旧日志记录。通过备份日志和使用DBCC SHRINKFILE命令可以实现日志的收缩。同时,还介绍了截断日志的原理和注意事项,包括不能截断事务日志的活动部分和MinLSN的确定方法。通过本文的方法,可以有效减小逻辑日志的大小,提高数据库的性能。 ... [详细]
  • 本文介绍了在开发Android新闻App时,搭建本地服务器的步骤。通过使用XAMPP软件,可以一键式搭建起开发环境,包括Apache、MySQL、PHP、PERL。在本地服务器上新建数据库和表,并设置相应的属性。最后,给出了创建new表的SQL语句。这个教程适合初学者参考。 ... [详细]
  • 搭建Windows Server 2012 R2 IIS8.5+PHP(FastCGI)+MySQL环境的详细步骤
    本文详细介绍了搭建Windows Server 2012 R2 IIS8.5+PHP(FastCGI)+MySQL环境的步骤,包括环境说明、相关软件下载的地址以及所需的插件下载地址。 ... [详细]
  • 这是原文链接:sendingformdata许多情况下,我们使用表单发送数据到服务器。服务器处理数据并返回响应给用户。这看起来很简单,但是 ... [详细]
  • PHP设置MySQL字符集的方法及使用mysqli_set_charset函数
    本文介绍了PHP设置MySQL字符集的方法,详细介绍了使用mysqli_set_charset函数来规定与数据库服务器进行数据传送时要使用的字符集。通过示例代码演示了如何设置默认客户端字符集。 ... [详细]
  • Java序列化对象传给PHP的方法及原理解析
    本文介绍了Java序列化对象传给PHP的方法及原理,包括Java对象传递的方式、序列化的方式、PHP中的序列化用法介绍、Java是否能反序列化PHP的数据、Java序列化的原理以及解决Java序列化中的问题。同时还解释了序列化的概念和作用,以及代码执行序列化所需要的权限。最后指出,序列化会将对象实例的所有字段都进行序列化,使得数据能够被表示为实例的序列化数据,但只有能够解释该格式的代码才能够确定数据的内容。 ... [详细]
  • Android中高级面试必知必会,积累总结
    本文介绍了Android中高级面试的必知必会内容,并总结了相关经验。文章指出,如今的Android市场对开发人员的要求更高,需要更专业的人才。同时,文章还给出了针对Android岗位的职责和要求,并提供了简历突出的建议。 ... [详细]
  • 本文介绍了如何使用php限制数据库插入的条数并显示每次插入数据库之间的数据数目,以及避免重复提交的方法。同时还介绍了如何限制某一个数据库用户的并发连接数,以及设置数据库的连接数和连接超时时间的方法。最后提供了一些关于浏览器在线用户数和数据库连接数量比例的参考值。 ... [详细]
  • Centos7.6安装Gitlab教程及注意事项
    本文介绍了在Centos7.6系统下安装Gitlab的详细教程,并提供了一些注意事项。教程包括查看系统版本、安装必要的软件包、配置防火墙等步骤。同时,还强调了使用阿里云服务器时的特殊配置需求,以及建议至少4GB的可用RAM来运行GitLab。 ... [详细]
  • 如何使用Java获取服务器硬件信息和磁盘负载率
    本文介绍了使用Java编程语言获取服务器硬件信息和磁盘负载率的方法。首先在远程服务器上搭建一个支持服务端语言的HTTP服务,并获取服务器的磁盘信息,并将结果输出。然后在本地使用JS编写一个AJAX脚本,远程请求服务端的程序,得到结果并展示给用户。其中还介绍了如何提取硬盘序列号的方法。 ... [详细]
  • 禁止程序接收鼠标事件的工具_VNC Viewer for Mac(远程桌面工具)免费版
    VNCViewerforMac是一款运行在Mac平台上的远程桌面工具,vncviewermac版可以帮助您使用Mac的键盘和鼠标来控制远程计算机,操作简 ... [详细]
  • 本文详细介绍了云服务器API接口的概念和作用,以及如何使用API接口管理云上资源和开发应用程序。通过创建实例API、调整实例配置API、关闭实例API和退还实例API等功能,可以实现云服务器的创建、配置修改和销毁等操作。对于想要学习云服务器API接口的人来说,本文提供了详细的入门指南和使用方法。如果想进一步了解相关知识或阅读更多相关文章,请关注编程笔记行业资讯频道。 ... [详细]
  • 生成对抗式网络GAN及其衍生CGAN、DCGAN、WGAN、LSGAN、BEGAN介绍
    一、GAN原理介绍学习GAN的第一篇论文当然由是IanGoodfellow于2014年发表的GenerativeAdversarialNetworks(论文下载链接arxiv:[h ... [详细]
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社区 版权所有