session无法传递,files保存可以,mysql保存却无法传递 如果 session 用数据库保存,那么每个使用 session 的页面都必须加载相应的代码你做到了吗? 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 这有个 session问题详解 可以看下 http://www.phpthinking.com/archives/318 嗯嗯,每次要用session的时候都会if (!isset($_SESSION)){ require_once __DIR__ . '/SessionHandler.php'; new \lib\SessionHandler();}SessionHandler.php文件里就有相应的代码,但问题还是其它页面读取不了session的值啊~ 为防止意外情况出现程序应无条件加载 SessionHandler.php而实例化对象和 session_start() 都应在 SessionHandler.php 中进行你还使用了命名空间,这就更需要注意排查新的故障点 去掉条件引用以及去掉命名空间还是不行。现在不说不同的页面,就算是同一个页面也读取不了,如下error_log($_SESSION["captcha"]);$_SESSION["captcha"] = $text;第一句error_log($_SESSION["captcha"]);中的$_SESSION["captcha"]是想读取前一次存在数据库中的captcha 的值,此时数据库中是有值的,但是就是读不出来,显示“PHP Notice: Undefined index: captcha”的错误,我的SessionHandler类中的session_read函数是这样的:function readSession($SID){ $query = "select value from sessioninfo where sid= :sid"; $stmt = $this->dbLink->prepare($query); $stmt->bindParam(':sid', $SID); if($stmt->execute()) { $value = $stmt->fetch(\PDO::FETCH_ASSOC); /*error_log('sid:'.$SID);*/ /*error_log('value:'.implode(',', $value));*/ if(!empty($value)) { return $value; } } }上面注释掉的代码读取到的$value是有值的,也就是说php读取到了值但是没有反序列化到内存里? 去掉条件引用以及去掉命名空间还是不行。现在不说不同的页面,就算是同一个页面也读取不了,如下error_log($_SESSION["captcha"]);$_SESSION["captcha"] = $text;第一句error_log($_SESSION["captcha"]);中的$_SESSION["captcha"]是想读取前一次存在数据库中的captcha 的值,此时数据库中是有值的,但是就是读不出来,显示“PHP Notice: Undefined index: captcha”的错误,我的SessionHandler类中的session_read函数是这样的:function readSession($SID){ $query = "select value from sessioninfo where sid= :sid"; $stmt = $this->dbLink->prepare($query); $stmt->bindParam(':sid', $SID); if($stmt->execute()) { $value = $stmt->fetch(\PDO::FETCH_ASSOC); /*error_log('sid:'.$SID);*/ /*error_log('value:'.implode(',', $value));*/ if(!empty($value)) { return $value; } } }上面注释掉的代码读取到的$value是有值的,也就是说php读取到了值但是没有反序列化到内存里?原来问题果然是出现在这里的~不应该return $value而是应该return $value['value'];终于解决了~谢谢你们~ 免费试用的空间如何上传mysql数据库的数据? 为什么我输出$_SERVER['DOCUMENT_ROOT']得到的是文件在机器上的绝对路径? ubuntu邮件问题 download 后代吗执行和页面刷新的文题 唠叨老大,再给点分。 为什么加了文中的代码,后面的JAVA SCRIPT就不能用了? 数组问题,求教???高手看过来 用explode()函数获得数组后,怎么取得该数组的长度? 急!!!请教新闻发布系统 请教一个多表查询的问题! 标签的循环索引问题 textarea换行
嗯嗯,每次要用session的时候都会
if (!isset($_SESSION)){
require_once __DIR__ . '/SessionHandler.php';
new \lib\SessionHandler();
}
SessionHandler.php文件里就有相应的代码,但问题还是其它页面读取不了session的值啊~
程序应无条件加载 SessionHandler.php
而实例化对象和 session_start() 都应在 SessionHandler.php 中进行
你还使用了命名空间,这就更需要注意排查新的故障点
去掉条件引用以及去掉命名空间还是不行。
现在不说不同的页面,就算是同一个页面也读取不了,如下
error_log($_SESSION["captcha"]);
$_SESSION["captcha"] = $text;
第一句error_log($_SESSION["captcha"]);中的$_SESSION["captcha"]是想读取前一次存在数据库中的captcha 的值,此时数据库中是有值的,但是就是读不出来,显示“PHP Notice: Undefined index: captcha”的错误,
我的SessionHandler类中的session_read函数是这样的:
function readSession($SID){
$query = "select value from sessioninfo where sid= :sid";
$stmt = $this->dbLink->prepare($query);
$stmt->bindParam(':sid', $SID);
if($stmt->execute())
{
$value = $stmt->fetch(\PDO::FETCH_ASSOC);
/*error_log('sid:'.$SID);*/
/*error_log('value:'.implode(',', $value));*/
if(!empty($value))
{
return $value;
}
}
}
上面注释掉的代码读取到的$value是有值的,也就是说php读取到了值但是没有反序列化到内存里?
去掉条件引用以及去掉命名空间还是不行。
现在不说不同的页面,就算是同一个页面也读取不了,如下
error_log($_SESSION["captcha"]);
$_SESSION["captcha"] = $text;
第一句error_log($_SESSION["captcha"]);中的$_SESSION["captcha"]是想读取前一次存在数据库中的captcha 的值,此时数据库中是有值的,但是就是读不出来,显示“PHP Notice: Undefined index: captcha”的错误,
我的SessionHandler类中的session_read函数是这样的:
function readSession($SID){
$query = "select value from sessioninfo where sid= :sid";
$stmt = $this->dbLink->prepare($query);
$stmt->bindParam(':sid', $SID);
if($stmt->execute())
{
$value = $stmt->fetch(\PDO::FETCH_ASSOC);
/*error_log('sid:'.$SID);*/
/*error_log('value:'.implode(',', $value));*/
if(!empty($value))
{
return $value;
}
}
}
上面注释掉的代码读取到的$value是有值的,也就是说php读取到了值但是没有反序列化到内存里?原来问题果然是出现在这里的~
不应该return $value而是应该return $value['value'];
终于解决了~谢谢你们~