10

私はこのコードを持っており、ログアウト ボタンを追加するためのコードが必要です。ユーザーをログアウトさせるログアウト ボタンのコードを誰でも書き出すことができますか。セッションの破棄について何かを読みましたが、コードの書き方がわかりません。ありがとうあなた!

<?php
    include 'connection.php';
    //start of checking if user is logged in code
    if (!valid_credentials) {
    header('Location: login.php');
    exit();
    }

$_SESSION['user'] = 'username';


if (!isset($_SESSION['user'])) {
    header('Location: login.php');
    exit();
}
    //end of logged in code and starting a session

$query = "SELECT * FROM people";
$result = mysql_query($query);
While($person = mysql_fetch_array($result)) {
    echo "<h3>" . $person['Name'] . "</h3>";
    echo "<p>" . $person['Description'] . "</p>";
    echo "<a href=\"modify.php?id=" . $person['ID']. "\">Modify User</a>";
    echo "<span> </span>";
    echo "<a href=\"delete.php?id=" . $person['ID']. "\">Delete User</a>";
}
?>
<h1>Create a User</h1>
<form action="create.php" method="post">
    Name<input type ="text" name="inputName" value="" /><br />
    Description<input type ="text" name="inputDesc" value="" />
    <br />
    <input type="submit" name="submit" />
</form>
4

2 に答える 2

30

ボタンの代わりにリンクを配置し、別のページに移動します

<a href="logout.php">Logout</a>

次に、logout.phpページで使用します

session_start();
session_destroy();
header('Location: login.php');
exit;
于 2012-08-31T05:40:16.937 に答える
7

セッションを完全に破棄したい場合は、それ以上のことを行う必要があります。

session_destroy();

まず、セッション変数の設定を解除する必要があります。次に、セッションを破棄してから、セッションの書き込みを閉じる必要があります。これは、次の方法で実行できます。

<?php
session_start();
unset($_SESSION);
session_destroy();
session_write_close();
header('Location: /');
die;
?>

ログアウト用に別のスクリプトが必要な理由は、ページで誤ってスクリプトを実行しないようにするためです。したがって、ログアウトスクリプトへのリンクを作成すると、ヘッダーがサイトのルートにリダイレクトされます。

編集:

スクリプトの上部にある終了コードから()を削除する必要があります。それはただあるべきです

exit;
于 2012-08-31T05:59:54.073 に答える