php中session_id()函数详细介绍,会话id生成过程及session id长度
作者:mrr 发布时间:2023-11-24 08:01:00
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
?>


猜你喜欢
- 方法一:<script language="JavaScript"> <!--
- 在 MySQL 下,在进行中文模糊检索时,经常会返回一些与之不相关的记录,如查找 "%a%" 时,返回的可能有中文字符,
- 前言最近发现CentOS 7下升级MySQL5.7.23的一个坑,以前面升级到MySQL 5.7.23的一个集群为例在我们环境下打开文件描述
- 关于PHP调用Python数据传输问题这是以前大学时做项目出现的问题,现在把它挪上来,希望给遇到问题的未来大佬给出一些小的思路,请大佬们不要
- 方法一 :这个是我在站长工具的查询页面使用的防止频繁查询,刷新页面的代码!下面函数的功能是3秒内查询页面即刷新了页面,超过2次就提示!sea
- 本节内容:本节内容是根据上学期所上的模式识别课程的作业整理而来,第一道题目是Kmeans聚类算法,数据集是Iris(鸢尾花的数据集),分类数
- 一、前言使用过Python的同学们一定被她的各种编码问题缠绕过,因为平常维护的新老项目跨越 2、3两个版本,编码问题有时更是让我苦不堪言,遂
- 在ASP编程中,身份认证可以说是常要用到的。但怎么样才能做到认证的安全呢?表单提交页面:sub.htm  
- 目录1、功能介绍2、关键代码2.1 主页功能2.2 添加商品信息2.3 数据库设计商品表前言:  
- 前言在CSDN发的第一篇文章,时隔两年,终于实现了爬微博的自由!本文可以解决微博预登录、识别“展开全文”并爬取完整数据、翻页设置等问题。由于
- 本文实例为大家分享了Python实现图书馆座位自动预约的具体代码,供大家参考,具体内容如下配置通过公网主机定时运行脚本,并发送邮件到自己的q
- FORMAT() 函数用于对字段的显示进行格式化。SQL FORMAT() 语法SELECT FORMAT(column_name,form
- 在如今的Web设计中,图片的应用是必不可少的,为了更好地设计网站效果,大体积的图片被越来越多地应用到Web设计中来,所以,更好地优化图片文件
- 最近项目需要抓包功能,并且抓包后要对数据包进行存库并分析。抓包想使用tcpdump来完成,但是tcpdump抓包之后只能保存为文件,我需要将
- Python提取html中文本到txt正则去标签方式# -*- coding: utf-8 -*-import redef html_tag
- 本文实例为大家分享了python3实现ftp服务功能的具体代码,供大家参考,具体内容如下客户端 main代码:#Author by Andy
- 微博上讨论MySQL在删除大表engine=innodb(30G+)时,如何减少MySQL hang的时间,现做一下简单总结: 当buffe
- 在thoughtbot,我们用Ruby和Rails工作,但通常我们总是尝试使用最合适的语言或者框架来解决问题。我最近一直在探索机器学习技术,
- 一、IE透明度问题在IE的高度超过某一阀值时,会产生透明度不时失效的问题,这现象比较奇怪,(会有的时候全黑,有的时候全白)你有可能无法复现。
- 课程体系结构:1、Requests框架:自动爬取HTML页面与自动网络请求提交2、robots.txt:网络爬虫排除标准3、Beautifu