2013-01-05 54 views
0

我遇到的问题是其中一个会话变量在页面之间导航时没有保存,但当我尝试直接通过php文件访问页面时,它会保存。 例子:PHP会话变量在.htaccess url重写后丢失

当我访问该网页是这样的: “http://www.domain.com/products/honey-4-dozes” ,然后导航到它送人是什么$ _SESSION内容数组是:

Array 
(
    [curr_sku] => honey4doz 
    [username] => testuser 
    [firstname] => John 
    [lastname] => Doe 
) 

但是,当我访问该页面直接这样说: “http://www.domain.com/product.php?product=honey-4-dozes” 然后导航离开这就是$ _SESSION数组的内容是:

Array 
(
    [curr_sku] => 
    [username] => testuser 
    [firstname] => John 
    [lastname] => Doe 
) 

我也在检查会话ID中的任何更改,但ID不会改变整个过程。事实上,在不同页面上创建的用户名,名字和姓氏字段在页面之间传递就好了。任何想法,为什么这可能会发生?

$ _SESSION ['curr_sku']变量在product.php页面上创建。

这是重写规则我用: 重写规则^产品/(.*+)$ product.php产品= $ 1 [QSA]

而且这是会话cookie参数的内容,我代码

{ 
    [lifetime] => 0 
    [path] =>/
    [domain] => 
    [secure] => 
    [httponly] => 
) 

部分用于设置变量:

$result = mysqli_query($link,"SELECT * FROM products WHERE url = '$curr_product'"); 
$row = mysqli_fetch_array($result); 
$_SESSION['curr_sku']=$row['sku']; 
+3

显示设置会话可变性的代码 – 2013-01-05 05:50:43

+1

PHP代码中存在该问题,因为此重写不会影响会话变量 – qsheets

+0

这是一个PHP问题。 – Gerben

回答