我遇到的问题是在页面之间导航时没有保存其中一个会话变量,但是当我尝试直接通过php文件访问页面时它确实被保存了。 例如:
当我以这种方式访问页面时: “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页面上创建。
这是我使用的重写规则: RewriteRule ^ products /(.*+)$ product.php?product = $ 1 [QSA]
这也是session_get_cookie_params()获得的会话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'];
答案 0 :(得分:0)
尝试使用:
http://www.domain.com/products/honey-4-dozes
RewriteRule ^products/(.*+)$ product.php?product=$1 [QSA]
对于http://www.domain.com/products/product=honey-4-dozes
RewriteRule ^products/product=(.*+)$ product.php?product=$1 [QSA]
我希望,我可以帮忙。