欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  后端开发

session,获取的字符串值,总是得到images类型

程序员文章站 2022-04-21 13:19:15
...
使用ci框架,版本2.1.4

$uuid=(string)($this->uri->segment(3));

$data=array(
'uuid'=>$uuid
);

$this->session->set_userdata('uuid',$data);

echo $this->session->userdata('uuid');

问题:
$this->uri->segment(3)获取的是一个ID号码,但是输出总是images
直接输出echo $this->uri->segment(3),是ID号没问题

然后不使用框架,直接
session_start();
$_SESSION["uuid"]=$uuid;

echo $_SESSION["uuid"];
这种方式,获取的值还是images


回复讨论(解决方案)

$uuid=(string)($this->uri->segment(3));
echo $uuid;
看看是什么

$uuid=(string)($this->uri->segment(3));
echo $uuid;
看看是什么

是那个ID字符串没错。现在问题是用session后变成了images

session_start();
$_SESSION["uuid"]=$uuid;

echo $_SESSION["uuid"];
这种方式,获取的值还是images

用原生态存储session的方法存储都是images那说明你存的就是images啊 是不是你的变量名冲突了

不要以为你发现了 php 的什么 bug
错肯定在你,而不在 php


$uuid=(string)($this->uri->segment(3));
echo $uuid;
看看是什么

是那个ID字符串没错。现在问题是用session后变成了images

print_r($this->uri->segment_array())

我有问题请教LZ,你是怎么确定的"总是得到images类型"
var_dump? 看header? 二进制文件头? 还是只echo 一下就知道了

我有问题请教LZ,你是怎么确定的"总是得到images类型"
var_dump? 看header? 二进制文件头? 还是只echo 一下就知道了

不确定"总是得到images类型",但确定是echo 出现的字符串是"images"

lz我赌*钱,
一定是$_SESSION['uuid']被重置了。
或者$uuid被重置了。。
想看session里面都有什么直接去session存储目录去扒那个文件看看把。
或者直接var_dump($_SESSION)里面所有的看看。
还是没有那必然是$uuid被重置了

http://*.com/questions/5484429/codeigniter-session-value-as-images,解决了

在同一个动作中显示没问题
但是跳到其他动作中print_r($this->uri->segment_array()),值变为images

在使用set_userdata后,使用redirect重定向
其他动作中用print_r($this->uri->segment_array()),值终于不是images

hack方法,orz

不要以为你发现了 php 的什么 bug
错肯定在你,而不在 php



$uuid=(string)($this->uri->segment(3));
echo $uuid;
看看是什么

是那个ID字符串没错。现在问题是用session后变成了images

从来没说过自己发现什么BUG,不过有一种东西叫做抽象漏洞。