我對會話變量有一個很奇怪的問題。 這個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