0

セッションが2か月間期限切れにならないように、Cookieをphpセッション変数に設定しようとしています。私が抱えている問題は、約3時間後、ページを更新すると、30行目で未定義のインデックスが取得されることです。しかし、 20〜23行目で$_SESSION['id']未定義のインデックスが取得されません。$_SESSION['id']

このセッション変数にCookieを設定したのに、まだ未定義のインデックスが表示されるのはなぜですか?

$inTwoMonths = 60 * 60 * 24 * 60 + time();
    setcookie('id', 'ID', $inTwoMonths);


    //line 20-23
    if (isset($_POST['id'])) {

    $_SESSION['id'] = $_POST['id'];

    }

    //line 30
    <?php echo $_SESSION['id'] ?>
4

1 に答える 1

0

セッション != クッキー。

php.ini で SESSION TTL を設定する必要があります (デフォルトは 20 分)。

20 ~ 23 行目では、var を設定しているため、未定義のインデックスを取得できません。しかし、30行目で、未定義の変数を読み込もうとしています(以前に設定していないので)。

次のようなことを試してください:

$_SESSION['id'] = $_COOKIE['id'];

また、session_start(); を使用する必要があります。セッションを開始します。

于 2012-09-11T17:29:49.910 に答える