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

phpsession()函数使用方法详解

phpsession()函数在php开发应用中有很重要的一个角色了,下面我来给初学者简单的介绍一下关于phpsession()函数使用方法与实例。对比起

php session()函数在php开发应用中有很重要的一个角色了,下面我来给初学者简单的介绍一下关于php session()函数使用方法与实例。

对比起 COOKIE,Session 是存储在服务器端的会话,相对安全,并且不像 COOKIE 那样有存储长度限制,本文简单介绍 Session 的使用。

由于 Session 是以文本文件形式存储在服务器端的,所以不怕客户端修改 Session 内容,实际上在服务器端的 Session 文件,PHP 自动修改 Session 文件的权限,只保留了系统读和写权限,而且不能通过 ftp 修改,所以安全得多.

由于 Session 是以文本文件形式存储在服务器端的,所以不怕客户端修改 Session 的内容,实际上在服务器端的 Session 文件,PHP自动修改 Session 文件的权限,只保留了系统读和写权限,而且不能通过 ftp 修改,所以安全很多。 

实例代码如下:

  1. // 启动Session 
  2. session_start(); 
  3. // 声明一个名为 admin 的变量,并赋空值。 
  4. $_SESSION["admin"] = null; 
  5. ?>  
  6. // 启动Session 
  7. session_start(); 
  8. // 将原来注册的某个变量销毁 
  9. unset($_SESSION['admin']); 
  10. // 销毁整个 Session 文件 
  11. session_destroy(); 
  12. ?>  
  13. // 启动Session 
  14. session_start(); 
  15. // 保存一天 
  16. $lifeTime = 24 * 3600; 
  17. setCOOKIE(session_name(), session_id(), time() + $lifeTime"/"); 
  18. ?>  
  19. // 保存一天  
  20. $lifeTime = 24 * 3600; 
  21. session_set_COOKIE_params($lifeTime); 
  22. session_start(); 
  23. $_SESSION["admin"] = true; 
  24. ?>  
  25. // 保存一天 
  26. $lifeTime = 24 * 3600; 
  27. // 取得当前 Session 名,默认为 PHPSESSID 
  28. $sessionName = session_name(); 
  29. // 取得 Session ID 
  30. $sessionID = $_GET[$sessionName]; 
  31. // 使用 session_id() 设置获得的 Session ID 
  32. session_id($sessionID); 
  33. session_set_COOKIE_params($lifeTime); 
  34. session_start(); 
  35. $_SESSION['admin'] = true; 
  36. ?>  
  37. // 设置一个存放目录 
  38. $savePath = './session_save_dir/'
  39. // 保存一天 
  40. $lifeTime = 24 * 3600; 
  41. session_save_path($savePath); 
  42. session_set_COOKIE_params($lifeTime); 
  43. session_start(); 
  44. $_SESSION['admin'] = true; 
  45. ?> 

另外,我们还可以使用 session_set_save_handler 函数来自定义 Session 的调用方式。

PHP函数补完:session_id()

session_id()

session_id() 存取目前 session 代号。

语法:string session_id(string [id]);

本函数可取得或者重新配置目前存放 Session 的代号,若无参数 id 则表示只有取得目前 Session 的代号,加上参数则表示将 Session 代号设成新指定的 id,输入及返回均为字符串。

输出 session_id(),代码如下:

  1.  session_start();  
  2.  echo session_id(); 
  3.  // 输出 dqr58dnuqj2gufvg4o3tmjb9v4 
  4. ?> 

设置 session_id(),代码如下:

  1.  session_id("NowaMagic"); 
  2.  session_start(); 
  3.  echo session_id(); 
  4.  // 输出 NowaMagic 
  5. ?> 

session_id 恢复 session的内容

php的session是可以程序恢复的,这个和java不太一样,session的恢复机制可以实现多个应用程序session的共享,因为php的session都是以文件形式或者数据库存储的,首先是session_id的获取是通过session_id()函数获取,这个值可以进行传递。

程序恢复session,首先要知道session_id,大家通过手册可以知道session的恢复通过session_id($id);但是在恢复时要注意一个先后顺序,要得到之前session的内容,必须在session_start()之前执行session_id($id),这样才能在执行了session_start时初始化session的时候恢复到之前的内容,否则的话你得到的是一个空的session,你什么也得不到。

之前session被重新初始化了,这个和session_start()的作用有密切关系,因为session_start告诉php,session要初始化,要从session文件中反序列化session内容,所以session_start的作用就是把之前存储的文件内容反序列化,session_start序列化之前要知道session_id,如果没有就生成一个新的session_id,如果有就反序列化相应文件的内容。


推荐阅读
  • 随着Linux操作系统的广泛使用,确保用户账户及系统安全变得尤为重要。用户密码的复杂性直接关系到系统的整体安全性。本文将详细介绍如何在CentOS服务器上自定义密码规则,以增强系统的安全性。 ... [详细]
  • 本文详细介绍如何安装和配置DedeCMS的移动端站点,包括新版本安装、老版本升级、模板适配以及必要的代码修改,以确保移动站点的正常运行。 ... [详细]
  • JavaScript 跨域解决方案详解
    本文详细介绍了JavaScript在不同域之间进行数据传输或通信的技术,包括使用JSONP、修改document.domain、利用window.name以及HTML5的postMessage方法等跨域解决方案。 ... [详细]
  • 搭建个人博客:WordPress安装详解
    计划建立个人博客来分享生活与工作的见解和经验,选择WordPress是因为它专为博客设计,功能强大且易于使用。 ... [详细]
  • 本文详细探讨了如何根据不同的应用场景选择合适的PHP版本,包括多版本切换技巧、稳定性分析及针对WordPress等特定平台的版本建议。 ... [详细]
  • 实现Win10与Linux服务器的SSH无密码登录
    本文介绍了如何在Windows 10环境下使用Git工具,通过配置SSH密钥对,实现与Linux服务器的无密码登录。主要步骤包括生成本地公钥、上传至服务器以及配置服务器端的信任关系。 ... [详细]
  • PHP中Smarty模板引擎自定义函数详解
    本文详细介绍了如何在PHP的Smarty模板引擎中自定义函数,并通过具体示例演示了这些函数的使用方法和应用场景。适合PHP后端开发者学习。 ... [详细]
  • 本文探讨了使用Python实现监控信息收集的方法,涵盖从基础的日志记录到复杂的系统运维解决方案,旨在帮助开发者和运维人员提升工作效率。 ... [详细]
  • Java虚拟机及其发展历程
    Java虚拟机(JVM)是每个Java开发者日常工作中不可或缺的一部分,但其背后的运作机制却往往显得神秘莫测。本文将探讨Java及其虚拟机的发展历程,帮助读者深入了解这一关键技术。 ... [详细]
  • 服务器虚拟化存储设计,完美规划储存与资源,部署高性能虚拟化桌面
    规划部署虚拟桌面环境前,必须先估算目前所使用实体桌面环境的工作负载与IOPS性能,并慎选储存设备。唯有谨慎估算贴近实际的IOPS性能,才能 ... [详细]
  • 在测试软件或进行系统维护时,有时会遇到电脑蓝屏的情况,即便使用了沙盒环境也无法完全避免。本文将详细介绍常见的蓝屏错误代码及其解决方案,帮助用户快速定位并解决问题。 ... [详细]
  • 本文提供了多种有效的方法来解决RPC(远程过程调用)服务器不可用的问题,包括通过修改注册表、使用SC命令以及利用故障恢复控制台等技术手段。 ... [详细]
  • 问题概述:在本地环境中代码运行正常,但部署到服务器后出现错误。具体表现为NCManager和SAXBuilder无法解析为类型。 ... [详细]
  • 本文详细介绍了如何在CentOS 6.5系统上安装和配置Redis 3.0.6,包括必要的环境准备、软件包下载、编译安装及基本功能测试。 ... [详细]
  • Fiddler 安装与配置指南
    本文详细介绍了Fiddler的安装步骤及配置方法,旨在帮助用户顺利抓取用户Token。文章还涵盖了一些常见问题的解决方案,以确保安装过程顺利。 ... [详细]
author-avatar
张浩杰_Hh
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有