我遇到的问题是其中一个会话变量在页面之间导航时没有保存,但当我尝试直接通过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'];
显示设置会话可变性的代码 – 2013-01-05 05:50:43
PHP代码中存在该问题,因为此重写不会影响会话变量 – qsheets
这是一个PHP问题。 – Gerben