php启用session,php 启动命令

本文目录一览:

php中如何使用SESSION

原生态php的session简单使用如下:

12345    sesstion_start();                // 首先开启session$_SESSION[‘user’] = ‘username’;  // 把username存在$_SESSION[‘user’] 里面echo $_SESSION[‘user’];          // 直接输出 username session_destroy();

php如何启用session

一般都会有一个统一的入口,或者统一的配置文件,在那加上session_start(); 即可

怎么开启php的session

原生态php的session简单使用如下:

1

2

3

4

5

sesstion_start(); // 首先开启session

$_SESSION[‘user’] = ‘username’; // 把username存在$_SESSION[‘user’] 里面

echo $_SESSION[‘user’]; // 直接输出 username

session_destroy(); // 销毁session

解析php session

本篇文章是对php中session_set_save_handler 函数的用法(mysql)进行了详细的分析介绍 需要的朋友参考下   复制代码 代码如下: ?php /*============================文件说明======================================== @filename: session class php @description: 数据库保存在线用户session 实现在线用户功能! @notice: session过期时间一个小时 因为我们的站点是使用cookie(有效时间是 小时)登录 因此我们只记录用户登录的时间 而不是刷新一次更新一次 删除数据库中session记录的动作发生在用户超时后执行这个文件或正常退出(session_destory) @database: database:sessions field:sessionid(char ) uid(int ) last_visit(int ) ============================================================================= */ class session { private $db; private $lasttime= ;//超时时间 一个小时 function session($db) { $this db = $db; session_module_name( user ); //session文件保存方式 这个是必须的!除非在Php ini文件中设置了 session_set_save_handler( array($this open ) //在运行session_start()时执行 array($this close ) //在脚本执行完成或调用session_write_close() 或 session_destroy()时被执行 即在所有session操作完后被执行 array($this read ) //在运行session_start()时执行 因为在session_start时 会去read当前session数据 array($this write ) //此方法在脚本结束和使用session_write_close()强制提交SESSION数据时执行 array($this destroy ) //在运行session_destroy()时执行 array($this gc ) //执行概率由session gc_probability 和 session gc_divisor的值决定 时机是在open read之后 session_start会相继执行open read和gc ); session_start(); //这也是必须的 打开session 必须在session_set_save_handler后面执行 } function unserializes($data_value) { $vars = preg_split( /([a zA Z_x f xff][a zA Z _x f xff]*)|/ $data_value PREG_SPLIT_NO_EMPTY | PREG_SPLIT_DELIM_CAPTURE ); for ($i = ; isset($vars[$i]); $i++) { $result[$vars[$i++]] = unserialize($vars[$i]); } return $result; } function open($path $name) { return true; } function close() { $this gc($this lasttime); return true; } function read($SessionKey){ $sql = “SELECT uid FROM sessions WHERE session_id = ” $SessionKey ” limit “; $query =$this db query($sql); if($row=$this db fetch_array($query)){ return $row[ uid ]; }else{ return “”; } } function write($SessionKey $VArray) { require_once(MRoot DIR_WS_CLASSES db_mysql_class php ); $db =new DbCom(); // make a connection to the database now $db connect(DB_SERVER DB_SERVER_USERNAME DB_SERVER_PASSWORD DB_DATABASE); $db query(“set names utf “); $this db=$db ; $SessionArray = addslashes($VArray); $data=$this unserializes($VArray); $sql = “SELECT uid FROM sessions WHERE session_id = ” $SessionKey ” limit “; $query =$this db query($sql ); if($this db num_rows($query )= ){ if (isset($data[ webid ]) !empty($data[ webid ])) { $this db query(“insert into `sessions` set `session_id` = $SessionKey uid= ” $data[ webid ] ” last_visit= ” time() ” “); } return true; }else{ /*$sql = “update `sessions` set “; if(isset($data[ webid ])){ $sql = “uid = ” $data[ webid ] ” ” ; } $sql =”`last_visit` = null ” “where `session_id` = $SessionKey “; $this db query($sql); */ return true; } } function destroy($SessionKey) { $this db query(“delete from `sessions` where `session_id` = $SessionKey “); return true; } function gc($lifetime) { $this db query(“delete from `sessions` where unix_timestamp(now()) `last_visit` ” $this lasttime ” “); return true; } } ?

下面是php ini中session的配置说明 session save_handler = “files” 存储和检索与会话关联的数据的处理器名字 默认为文件(“files”) 如果想要使用自定义的处理器(如基于数据库的处理器) 可用”user” 有一个使用PostgreSQL的处理器 session save_path = “/tmp” 传递给存储处理器的参数 对于files处理器 此值是创建会话数据文件的路径 Windows下默认为临时文件夹路径 你可以使用”N[MODE]/path”这样模式定义该路径(N是一个整数) N表示使用N层深度的子目录 而不是将所有数据文件都保存在一个目录下 [MODE]可选 必须使用 进制数 默认 (= ) 表示每个目录下最多保存的会话文件数量 这是一个提高大量会话性能的好主意 注意 : “N[MODE]/path”两边的双引号不能省略 注意 : [MODE]并不会改写进程的umask 注意 : php不会自动创建这些文件夹结构 请使用ext/session目录下的mod_files sh脚本创建 注意 : 如果该文件夹可以被不安全的用户访问(比如默认的”/tmp”) 那么将会带来安全漏洞 注意 : 当N 时自动垃圾回收将会失效 具体参见下面有关垃圾搜集的部分

session name = “PHPSESSID” 用在cookie里的会话ID标识名 只能包含字母和数字

session auto_start = Off 在客户访问任何页面时都自动初始化会话 默认禁止 因为类定义必须在会话启动之前被载入 所以若打开这个选项 你就不能在会话中存放对象

session serialize_handler = “php” 用来序列化/解序列化数据的处理器 php是标准序列化/解序列化处理器 另外还可以使用”php_binary” 当启用了WDDX支持以后 将只能使用”wddx”

session gc_probability = session gc_divisor = 定义在每次初始化会话时 启动垃圾回收程序的概率 这个收集概率计算公式如下 session gc_probability/session gc_divisor 对会话页面访问越频繁 概率就应当越小 建议值为 / ~

session gc_maxlifetime = 超过此参数所指的秒数后 保存的数据将被视为 垃圾 并由垃圾回收程序清理 判断标准是最后访问数据的时间(对于FAT文件系统是最后刷新数据的时间) 如果多个脚本共享同一个session save_path目录但session gc_maxlifetime不同 那么将以所有session gc_maxlifetime指令中的最小值为准 如果使用多层子目录来存储数据文件 垃圾回收程序不会自动启动 你必须使用一个你自己编写的shell脚本 cron项或者其他办法来执行垃圾搜集 比如 下面的脚本相当于设置了”session gc_maxlifetime= ” ( 分钟) cd /path/to/sessions find cmin + | xargs rm

session referer_check = 如果请求头中的”Referer”字段不包含此处指定的字符串则会话ID将被视为无效 注意 如果请求头中根本不存在”Referer”字段的话 会话ID将仍将被视为有效 默认为空 即不做检查(全部视为有效)

session entropy_file = “/dev/urandom” 附加的用于创建会话ID的外部高熵值资源(文件) 例如UNIX系统上的”/dev/random”或”/dev/urandom”

session entropy_length = 从高熵值资源中读取的字节数(建议值 )

session use_cookies = On 是否使用cookie在客户端保存会话ID

session use_only_cookies = Off 是否仅仅使用cookie在客户端保存会话ID 打开这个选项可以避免使用URL传递会话带来的安全问题 但是禁用Cookie的客户端将使会话无法工作

session cookie_lifetime = 传递会话ID的Cookie有效期(秒) 表示仅在浏览器打开期间有效

session cookie_path = “/” 传递会话ID的Cookie作用路径

session cookie_domain = 传递会话ID的Cookie作用域 默认为空表示表示根据cookie规范生成的主机名

session cookie_secure = Off 是否仅仅通过安全连接()发送cookie

session cookie_only = Off 是否在cookie中添加Only标志(仅允许HTTP协议访问) 这将导致客户端脚本(JavaScript等)无法访问该cookie 打开该指令可以有效预防通过XSS攻击劫持会话ID

session cache_limiter = “nocache” 设为{nocache|private|public}以指定会话页面的缓存控制模式 或者设为空以阻止在应答头中发送禁用缓存的命令

session cache_expire = 指定会话页面在客户端cache中的有效期限(分钟) session cache_limiter=nocache时 此处设置无效

session use_trans_sid = Off 是否使用明码在URL中显示SID(会话ID) 默认是禁止的 因为它会给你的用户带来安全危险 用户可能将包含有效sid的URL通过email/irc/QQ/MSN…途径告诉给其他人 包含有效sid的URL可能会被保存在公用电脑上 用户可能保存带有固定不变sid的URL在他们的收藏夹或者浏览历史纪录里面 基于URL的会话管理总是比基于Cookie的会话管理有更多的风险 所以应当禁用

session bug_pat_ = On session bug_pat_warn = On PHP 之前的版本有一个未注明的”BUG” 即使在register_globals=Off的情况下也允许初始化全局session变量 如果你在PHP 之后的版本中使用这个特性 会显示一条警告 建议关闭该”BUG”并显示警告

session hash_function = 生成SID的散列算法 SHA 的安全性更高一些 : MD ( bits) : SHA ( bits) 建议使用SHA

session hash_bits_per_character = 指定在SID字符串中的每个字符内保存多少bit 这些二进制数是hash函数的运算结果 : a f : a v : a z A Z ” ” ” ” 建议值为

lishixinzhi/Article/program/PHP/201311/21306

原创文章,作者:BWQN,如若转载,请注明出处:https://www.506064.com/n/142249.html

(0)
BWQNBWQN
上一篇 2024-10-10
下一篇 2024-10-10

相关推荐

  • Laravel分页实现相关 – 详细步骤和示例代码

    一、什么是分页? 分页,顾名思义就是将一份数据分成若干页,使得每页数据量变小,更加易于浏览和理解。当我们使用 Laravel 开发 Web 应用时,往往需要对数据库中的数据进行分页…

    编程 2024-10-04
  • MariaDB修改密码

    一、什么是MariaDB? MariaDB是一个自由和开源的关系型数据库管理系统,由MySQL的原始开发者创建。它是MySQL的一个分支,兼容MySQL,可以无缝替换MySQL。既…

    编程 2024-10-11
  • php仿豆瓣源码,Php社区源码

    本文目录一览: 1、【PHP】关于仿豆瓣程序中core.function.php 2、php网站源码下载 及怎么在本机上运行 3、php 源码 【PHP】关于仿豆瓣程序中core.…

    编程 2024-10-04
  • Java编程语言

    Java编程语言是一种高级的、面向对象的编程语言,被广泛应用于Web、移动应用、游戏、嵌入式系统等领域。Java具有平台无关性、安全性、可移植性等优势,被众多开发者全球范围内所接受…

    编程 2024-10-03
  • Linux TTY:终端命令行界面完全指南

    一、什么是Linux TTY? Linux TTY是指终端设备,在计算机操作系统中,它提供了用户与系统进行交互的界面,是计算机操作的重要界面之一。在Linux系统中,TTY通常用于…

    编程 2024-10-04
  • 微信 for:一个全面的社交媒体平台

    一、微信 for 就是啥 微信 for,简称微信,是一款由中国腾讯公司开发的即时通讯应用软件。用户可以通过它进行文本、语音和视频通话,发送照片、视频和语音信息,分享实时位置和动态消…

    编程 2024-10-04
  • ICML是什么级别的会议?

    一、ICML是什么级别的会议 ICML全称为International Conference on Machine Learning,中文名称为国际机器学习大会。ICML是目前机器…

    编程 2024-10-04
  • 使用strptime函数进行日期时间转换的PHP教程

    如果您曾经需要在PHP中将字符串日期或时间转换为可操作的日期和时间格式,strptime函数就是为您而生的函数。这个函数可以将字符串日期和时间转换为标准的日期和时间值,以供程序进行…

    编程 2024-10-12
  • 机械手运动学python(机械手运动学模型)

    本文目录一览: 1、机器人编程怎么入门? 2、机械手编程怎么编 3、python能对动作机器人编程吗? 4、机械手的自动化编程都是用哪些计算机语言? 5、怎么对一个机械手编程仿真,…

    编程 2024-10-03
  • 使用Python的while-else循环实现条件控制流程

    Python作为一门高级编程语言,在条件控制流程的实现方面有着丰富的语法和工具。其中,while-else循环是一种简单而灵活的语法结构,能够帮助开发者在满足某个条件时执行特定的代…

    编程 2024-10-03

发表回复

登录后才能评论