4
$_SESSION['user_id'] = $login;  
setcookie('user_id', '$login' , time()+86000);
header('Location: userindex.php');

function logged_in() {
return (isset($_SESSION['user_id']) || isset($_COOKIE['user_id']) ? true : false;
}

私はSESSIONを持っていますが、COOKIEも含めますが、COOKIEでSESSIONを再起動する方法がわかりません。どうすればそれを手に入れることができるのか分かりません。COOKIEを作成しましたが、ログアウトできず、SESSIONに問題があります。誰かが私の問題を解決するのを手伝ってくれますか???? そして、上のすべてのページに、ユーザーがログインしているかどうかを確認するためのlogged_in関数があります。これらのlogged_in関数を使用して、ユーザーがユーザーCookieに自動ログインするためのCookieを持っているかどうかを確認します。私はそれがlogged_in関数にあると思いますいくつかのコードを書く必要があります...

4

3 に答える 3

3

誰でもfirebugのようなものを使用してCookieを作成できるため、これは安全ではないことに注意してください。

@session_start();

function logged_in() {
    if(!isset($_SESSION['user_id']) && isset($_COOKIE['user_id'])) {
        $_SESSION['user_id'] = $_COOKIE['user_id'];
    }
    return isset($_SESSION['user_id']);
}

function logout() {
    unset($_SESSION['user_id']);
    setcookie("user_id", "", time() - 3600);
    header("Location: http://".$_SERVER['HTTP_HOST']);
    exit;
}

編集:logout()を追加-セッションとCookieの両方を削除します'user_id'、次にホームページにリダイレクトします

于 2013-02-12T13:28:24.570 に答える
1

まず、次のように設定する必要があります。

setcookie('user_id', $login , time()+86000);

したがって、引用符なしで$loginします。また、このCookieを別のページに表示する必要がある場合は、パス変数を設定することもできます。

Cookieの削除は、負の時間値を設定して行われます。

setcookie('user_id', '' , time()-86000);
于 2013-02-12T13:29:18.983 に答える
0
session_start();

function logged_in() {

    if(!isset($_SESSION['user_id']) && isset($_COOKIE['user_id'])) {

        $_SESSION['user_id'] = $_COOKIE['user_id'];
    }

    return (isset($_SESSION['user_id'])) && isset($_COOKIE['user_id'])));
}
于 2013-02-12T13:41:50.310 に答える