ログインシステムを設計しました。しかし、ユーザーがログオンすると、メニューがある新しいページにリダイレクトされます。しかし、ユーザーがログアウトしてホームページのURLをコピーすると、いつでも。彼はまた戻ってくることができる。これをどうやって防ぐのですか?ログアウトした後にユーザが入力しないようにする
Login.php
<html>
<head>
<title>Log in</title>
</head>
<body>
<h1>Welcome please sign in!</h1>
<?php if (!isset($_POST[ 'submit'])){ ?>
<!-- The HTML login form -->
<form action="<?=$_SERVER['PHP_SELF']?>" method="post">
Username:
<input type="text" name="username" />
<br />Password:
<input type="password" name="password" />
<br />
<input type="submit" name="submit" value="Login" />
</form>
<?php } else { require_once("db_const.php"); $mysqli=n ew mysqli(DB_HOST, DB_USER, DB_PASS, DB_NAME); # check connection if ($mysqli->connect_errno) { echo "
<p>MySQL error no {$mysqli->connect_errno} : {$mysqli->connect_error}</p>"; exit(); } $username = $_POST['username']; $password = $_POST['password']; $sql = "SELECT * from users WHERE username LIKE '{$username}' AND password LIKE '{$password}' LIMIT 1";
$result = $mysqli->query($sql); if (!$result->num_rows == 1) { echo "
<p>Invalid username/password combination</p>"; } else { echo '
<script language="javascript">
';
\t \t echo '
alert("Log in successfull!")
';
\t \t echo '
</script>'; header("refresh:5;url=home.php"); } } ?>
</body>
</html>
ログアウト:
<?php
session_start();
session_destroy();
header('Location: login.php');
exit;
?>
とメニューページ:
<a href="login.php">Logout</a>
これはPHPの動作方法ではありません。 –
あなたのセッションには何が保存されていますか? – Virb
PHPの使い方を学んでください。 :) –