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

原创
2016-06-23 14:01:15 697浏览

使用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://stackoverflow.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,不过有一种东西叫做抽象漏洞。

声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn核实处理。