0

私が抱えている問題は、ページ間のナビゲーション中にセッション変数の1つが保存されないことですが、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'];
4

1 に答える 1