0 レビュー
3 回答
php-2回クリックするためのログアウト要求
おはようございます。
この画像にあるように自動車を管理するためのウェブアプリを作成します。
前の画像に表示されているのは、ユーザーがログインしたかどうかに関係なくさまざまなことを表示するように構成されたファイルindex.phpです。
<body>
<div class="container">
<h2>Welcome to the Automobiles Database</h2>
<?php
if ( isset($_SESSION['error']) ) {
echo('<p style="color: red;">'.htmlentities($_SESSION['error'])."</p>\n");
unset($_SESSION['error']);
}
if ( isset($_SESSION['success']) ) {
echo('<p style="color: green;">'.htmlentities($_SESSION['success'])."</p>\n");
unset($_SESSION['success']);
}
?>
<!-- without login -->
<?php if(!isset($_SESSION['name'])) {
echo '<p><a href="login.php">Please log in</a></p>';
echo '<p>Attempt to <a href="add.php">add data</a> without logging in</p>';
} ?>
<!-- with login -->
<?php if(isset($_SESSION['name'])) {
echo '<table border="1"><thead><tr><th>Make</th><th>Model</th><th>Year</th><th>Mileage</th><th>Action</th></tr></thead>';
$smtp = $pdo->query("SELECT autos_id, make, model, year, mileage FROM autos ORDER BY make");
while ($row = $smtp->fetch(PDO::FETCH_ASSOC)) {
echo("<tr><td><b>");
echo($row['make']);
echo("</b></td><td><b>");
echo($row['model']);
echo("</b></td><td><b>");
echo($row['year']);
echo("</b></td><td><b>");
echo($row['mileage']);
echo("</b></td><td><b>");
echo("<a href=\"edit.php?autos_id=".$row["autos_id"]."\">Edit</a> / <a href=\"delete.php?autos_id=".$row["autos_id"]."\">Delete</a>");
echo("</b></td><tr>\n");
}
echo '</table>';
echo '<p><a href="add.php">Add New Entry</a></p> <p><a href="?logout">Logout</a></p>';
if(isset($_GET['logout'])) {
session_unset();
}
} ?>
</div>
</body>
私が直面している問題は、リンク「ログアウト」に関係しています。これは次のとおりです。
echo '<p><a href="add.php">Add New Entry</a></p> <p><a href="?logout">Logout</a></p>';
1回クリックすると、これが結果になります。
これは期待どおりにユーザーをログアウトしますが、すぐにこのページに到達したいので(ログインせずにindex.phpです)、これを実現するには2回クリックする必要がありますリンク...
Logout.php:
session_start();
unset($_SESSION['name']);
unset($_SESSION['user_id']);
header('Location: index.php');
どうすればよいですか?
BP
わからない
0
レビュー
答え :
解決策:
Logout.php を次のように変更しました:
<?php
session_start();
unset($_SESSION['name']);
unset($_SESSION['user_id']);
header('Location: index.php');
?>
および次へのログアウトリンク:
echo '<p><a href="add.php">Add New Entry</a></p> <p><a href="logout.php">Logout</a></p>';
正常に動作するようになりました!
わからない
0
レビュー
答え :
解決策:
「?logout」をlogout.phpページのURLに置き換えて、問題が解決することを願っています
<html>
'<p><a href="add.php">Add New Entry</a></p> <p><a href="?logout">Logout</a></p>'; ?</html>
わからない
0
レビュー
答え :
解決策:
最後にsession_destroy();
を追加して解決しました
<?php
session_start();
unset($ _ SESSION ['loggedin']);
unset($ _ SESSION ['email']);
{-コード-1}
?>
わからない
同様の質問
私たちのウェブサイトで同様の質問で答えを見つけてください。