0

完璧に機能するログインおよび登録システムを作成しました。これは非常に誇りに思っていますが、ログアウト機能が機能していないようです。

私のログインシステムは基本的にデータベースを取得し、ユーザー名とパスワードの両方が指定されている行をスキャンします。失敗すると 0 になります。

ユーザーが完了したら、logout.php にリダイレクトするリンクをクリックします。そこから問題が始まります。session_start(); を入れました。ただし、session_destroy、session_unset、および 2 つの組み合わせは、セッションを強制終了するようには見えません。

logout.php をロードするときに、$_SESSION['loggedin] を 0 に設定してから、index.php(私のホームページ) にリダイレクトする方法はありますか? つまり、セッションは強制終了されませんが、ユーザーは効果的にログアウトされます。どんな助けでも大歓迎です。

4

4 に答える 4

3

// セッションを閉じるための 4 つのステップ // (つまり、ログアウト)

    // 1. Find the session
    session_start();

    // 2. Unset all the session variables
    $_SESSION = array();

    // 3. Destroy the session cookie
    if(isset($_COOKIE[session_name()])) {
        setcookie(session_name(), '', time()-42000, '/');
    }

    // 4. Destroy the session
    session_destroy();
于 2013-08-03T15:57:21.690 に答える
0

3 つのファイルを用意することをお勧めします 1) login.php

session_start();
/*if user $_POST username and password is correct then*/
$_SESSION['loggedin'] = 1;

?>

2)logout.php

<?php

session_start();
unset($_SESSION['loggedin']);
$_SESSION['loggedin'] = 0;

?>

3)checkLogin.php

<?php

session_start();
if ( isset($_SESSION['loggedin']) && $_SESSION['loggedin'] == 0 )
{
echo "<script type='text/javascript'>alert('You need to login !')</script>";
echo '<meta http-equiv="Refresh" content="0;URL=index.php" />';
flush();
exit();
}
?>

アクセスする前にログインが必要なページを制御したい場合は、3 つのファイルを使用します。

たとえば、index.php はログインを必要としないので、include(checkLogin.php); は必要ありません。
しかし、 memberProfile.php はその前にログインが必要です include(checkLogin.php);

于 2013-08-03T19:52:07.853 に答える
0
// logout.php
session_start();
if(isset($_SESSION['loggedin']) && $_SESSION['loggedin'] == 1) {
    $_SESSION['loggedin'] = 0;
    header('Location: index.php');
}

に等しいindex.php場合はユーザーを にリダイレクトし、 に設定します。$_SESSION['loggedin']1$_SESSION['loggedin']0

于 2013-08-03T19:02:59.973 に答える