-1

このコード:

<?php

session_name('sess1');
session_start();
$_SESSION['a']=1;
session_write_close();

session_name('sess2');
session_start();
$_SESSION['b']=2;
session_write_close();

session_name('sess1');
session_start();

echo '<pre>';
print_r($_SESSION);
echo '</pre>';

?>

プリント:

Array
(
    [a] => 1
    [b] => 2
)

ご覧のとおり、両方の変数が最初のセッション (ファイル) に保存されています。

私は別の行動が必要であり、期待していました。2 つの異なるセッションが必要です。

なぜphpはそう振る舞うのですか?バグじゃない?

4

1 に答える 1

1

[コメントから] 他の人が自分のセッションに干渉することなく、自分のプログラムに含めることができるようにしてほしい.

そして、セッション処理を大幅に妨害することでそれを達成したいのですか?

これは良い考えではないと思います。このような「型破りな」方法でセッションを操作すると、ユーザーがセッションで抱える問題がさらに増える可能性が高くなります。

また、私のセッションには、システムを使用する他のプログラムのセッションに干渉したくない独自の設定 (cookie_lifetime など) があります。

ページに埋め込んだログイン システムのセッション ライフタイムが、セッションで行う残りのセッションのライフタイムと異なるのはなぜですか? 私にはほとんど意味がありません。

独自のセッションを持つ登録およびログイン システムを開発しました (実際、セッションの内容は透過的に暗号化されています)。

セッションの残りの部分をプレーンテキストのままにして、データを暗号化しておくことが主な関心事である場合は、セッション配列で独自のキーを簡単に生成し、そのキーの下にあるデータのみを暗号化できます。

于 2013-03-19T16:40:39.947 に答える