我对会话变量有一个很奇怪的问题。 这个var是一个关联数组。我在一个页面(页面A)创建了很多可过滤的项目。我保存过滤器会话中的无功
$_SESSION['filter'] = Array ('m' => 'acrylic', 'a' => 'P', 'c' => 1960);
用户可以去详细页面(B),但在这里我有
$_SESSION['filter'] = Array ('m' => 'acrylic', 'a' => 'P');
奇怪的是,当我去我的详细信息页面我错过关联数组 中的最后一项,因此我无法返回正确的过滤器信息。
我建立会话VAR在这个函数中,选项是通过在URL例如:http://www.web.com/artworks/a-P/c-1960/o-private+collection这个URL
参数的$ args将是这个数组( 'A-P',“C-1960年“邻私人收藏+”)
private function filter($args){
// options
$f = array('a','c','u','t','m','o');
$a = array();
foreach($args as $i){
$t = explode('-', $i);
if (in_array($t[0], $f)){
$a[$t[0]] = urldecode($t[1]);
$this->suffix .= '/'.$i;
}
else if(is_numeric($i))
$a['pp'] = intval($i);
}
$_SESSION['filter'] = $a;
return $a;
}
我把这个页面A,在页面BI不调用此函数的唯一作用是
if (isset($_SESSION['filter'])){
print_r($_SESSION);
...
有人能帮助我吗? 谢谢
请确保在会话变量上没有采取任何意外操作,请尝试使用'$ _SESSION ['filter2']'看看会发生什么 – Basic 2011-03-10 10:36:56
我尝试了filter2,而不是解决 – Paolo 2011-03-10 10:42:40
执行'print_r($ _ SESSION) '在返回$ a之前'告诉我们打印出来的内容。 – Jon 2011-03-10 10:47:07