php中session_id()函数详细介绍,会话id生成过程及session id长度


Posted in PHP onSeptember 23, 2015

php中session_id()函数原型及说明session_id()函数说明:stringsession_id([string$id])session_id() 可以用来获取/设置 当前会话 ID。为了能够将会话 ID 很方便的附加到 URL 之后, 你可以使用常量 SID 获取以字符串格...

php中session_id()函数原型及说明

session_id()函数说明:

string session_id ([ string $id ] )

session_id() 可以用来获取/设置 当前会话 ID。

为了能够将会话 ID 很方便的附加到 URL 之后, 你可以使用常量 SID 获取以字符串格式表达的会话名称和 ID。 请参考 会话处理。

session_id()函数参数:

id

如果指定了 id 参数的值, 则使用指定值作为会话 ID。 必须在调用 session_start() 函数之前调用 session_id() 函数。 不同的会话管理器对于会话 ID 中可以使用的字符有不同的限制。 例如文件会话管理器仅允许会话 ID 中使用以下字符:a-z A-Z 0-9 , (逗号)和 - (减号)

Note: 如果使用 cookie 方式传送会话 ID,并且指定了 id 参数, 在调用 session_start() 之后都会向客户端发送新的cookie, 无论当前的会话 ID 和新指定的会话 ID 是否相同。

session_id()函数返回值:

session_id() 返回当前会话ID。 如果当前没有会话,则返回空字符串("")。

php会话ID如何生成以及会话ID长度

    一个访问者访问你的 web 网站将被分配一个唯一的 id, 就是所谓的会话 id. 这个 id 可以存储在用户端的一个 cookie 中,也可以通过 URL 进行传递. Session会话用来追踪每个用户的会话,使用服务器生成的SessionID进行标识,用以区分用户。Session存放在服务器的内存中,SessionID存放在服务器内存和客户机的Cookie里面。这样,当用户发出请求时,服务器将用户Cookie里面记录的SessionID和服务器内存中的SessionID进行比对,从而找到这个用户对应的Session进行操作。所以,如果客户机禁止Cookie的话,Session也不能使用。

php会话ID是如何产生的?PHP默认的session id生成算法介绍

    以php5.3.6的源码为例,进入/ext/session目录,生成session id的函数位于session.c文件的345行,c语言函数原型如下:

PHPAPI char *php_session_create_id(PS_CREATE_SID_ARGS);

  有兴趣的可以具体分析实现原理。

PHP默认的session id长度

截取一些实际的php 5.4.6服务端生成的session id如下:

sess_00nrqa20hjrlaiac0eu726i4q5  sess_89j9ifuqrbplk0rti2va2k1ha0  sess_g2rv1kd6ijsj6g6c9jq5mqglv5 
sess_04es72a83tqsl0jqd3cvrc4s01  sess_8b7a5lme60g49lvk4u4jiemdn1  sess_g3uk6d3gbashg5eoq0b2k7vsk0 
sess_04u0ns0oobh2g93t009bij2rq0  sess_8dfvkiv8ml44fdqrk1rcmjchs4  sess_g64tddhbo8pbj8bs7bel44rf35 
sess_0592dolr5m0k392fah6c9preg7  sess_8fhgkjuakhatbeg2fa14lo84q1  sess_g6kl828qqsnvdrse7ff52cl2a4 
sess_066g8irr0m22iqotscepub4e13  sess_8gn03i9j1tta7655qfj6nl1l53  sess_g8t45j6qce7mf55nk14cotj5i4 
sess_08nr1fav9jqs2pdi5qlpsmd247  sess_8gvu05313o7p9usksaacaiegu6  sess_gbtjmr57iat86c8ve86ar5nh30

可见具体的session id 为 “sess_”后面的部分,长度为26位,此长度仅限于php 5.4.6.

php session_id()用法代码举例如下:

输出session_id()详细代码:

<?php
  session_start();
  echo session_id();
  // 输出 08nr1fav9jqs2pdi5qlpsmd247
?>

设置 session_id()详细代码:

<?php
  session_id("www.169it.com");
  session_start();
  echo session_id();
  // 输出 www.169it.com
?>
PHP 相关文章推荐
在PHP中利用XML技术构造远程服务(下)
Oct 09 PHP
php 上一篇,下一篇文章实现代码与原理说明
May 09 PHP
php中在PDO中使用事务(Transaction)
May 14 PHP
php密码生成类实例
Sep 24 PHP
Yii分页用法实例详解
Dec 04 PHP
PHP测试成功的邮件发送案例
Oct 26 PHP
PHP闭包函数详解
Feb 13 PHP
详解PHP实现异步调用的4种方法
Mar 14 PHP
利用PHPExcel读取Excel的数据和导出数据到Excel
May 12 PHP
PHP使用Redis长连接的方法详解
Feb 12 PHP
php实现每日签到功能
Nov 29 PHP
Swoole源码中如何查询Websocket的连接问题详解
Aug 30 PHP
通过修改配置真正解决php文件上传大小限制问题(nginx+php)
Sep 23 #PHP
php实现简单的MVC框架实例
Sep 23 #PHP
php实现的单一入口应用程序实例分析
Sep 23 #PHP
PHP中常见的缓存技术实例分析
Sep 23 #PHP
PHPStrom中实用的功能和快捷键大全
Sep 23 #PHP
PHP提高编程效率的20个要点
Sep 23 #PHP
基于ThinkPHP+uploadify+upload+PHPExcel 无刷新导入数据
Sep 23 #PHP
You might like
php使用curl访问https示例分享
2014/01/17 PHP
qq登录,新浪微博登录接口申请过程中遇到的问题
2014/07/22 PHP
php学习笔记之字符串常见操作总结
2019/07/16 PHP
javascript 学习之旅 (3)
2009/02/05 Javascript
网页下载文件期间如何防止用户对网页进行其他操作
2014/06/27 Javascript
js实现简单的可切换选项卡效果
2015/04/10 Javascript
jQuery解析XML文件同时动态增加js文件的方法
2015/06/01 Javascript
js 文字超出长度用省略号代替,鼠标悬停并以悬浮框显示实例
2016/12/06 Javascript
简单实现node.js图片上传
2016/12/18 Javascript
JS中用try catch对代码运行的性能影响分析
2016/12/26 Javascript
微信小程序踩坑记录之解决tabBar.list[3].selectedIconPath大小超过40kb
2018/07/04 Javascript
使用layui 渲染table数据表格的实例代码
2018/08/19 Javascript
微信小程序使用map组件实现检索(定位位置)周边的POI功能示例
2019/01/23 Javascript
微信小程序用户授权,以及判断登录是否过期的方法
2019/05/10 Javascript
javascript获取元素的计算样式
2019/05/24 Javascript
vue同个按钮控制展开和折叠同个事件操作
2020/07/29 Javascript
[01:11:32]VG vs FNATIC 2019国际邀请赛小组赛 BO2 第二场 8.15
2019/08/17 DOTA
Python fileinput模块使用介绍
2014/11/30 Python
python在windows下实现ping操作并接收返回信息的方法
2015/03/20 Python
不到40行代码用Python实现一个简单的推荐系统
2019/05/10 Python
Window10下python3.7 安装与卸载教程图解
2019/09/30 Python
使用Python串口实时显示数据并绘图的例子
2019/12/26 Python
如何通过python实现人脸识别验证
2020/01/17 Python
html5 css3实例教程 一款html5和css3实现的小机器人走路动画
2014/10/20 HTML / CSS
UNIX特点都有哪些
2016/04/05 面试题
仓库管理制度
2014/01/21 职场文书
带病坚持工作事迹
2014/05/03 职场文书
感恩父母的演讲稿
2014/05/06 职场文书
韩语专业职业生涯规划范文:成功之路就在我们脚下
2014/09/11 职场文书
党的群众路线查摆剖析材料
2014/10/10 职场文书
绍兴鲁迅故居导游词
2015/02/09 职场文书
博物馆观后感
2015/06/05 职场文书
小学教师见习总结
2015/06/23 职场文书
2016抗战胜利71周年红领巾广播稿
2015/12/18 职场文书
资产移交协议书
2016/03/24 职场文书
阿里面试Nacos配置中心交互模型是push还是pull原理解析
2022/07/23 Java/Android