解決策を探していますが、何を試してもうまくいかないようです。
ログインに成功すると、ユーザーは元のページにリダイレクトされるはずです。たとえば、投稿を閲覧していて、コメントを残すためにログインしたい場合、閲覧していた投稿にリダイレクトされる必要があります。だからここに私が持っているものがあります:
login.phpはログインフォームを示しています:
<form method="post" action="login-check.php">
... //input for username and password
</form>
login-check.phpは、ユーザー名とパスが入力されているかどうか、ユーザーが存在するかどうか、またはユーザーが既にログインしているかどうかをチェックし、p
パラメーターが login.php に送信されます。
<?php
session_start();
if((empty($username) OR empty($password) AND !isset($_SESSION['id_login']))) {
header("Location:login.php?p=1");
exit();
}
elseif (!user_exists($username,$password) AND !isset($_SESSION['id_login'])) {
header("Location:login.php?p=2");
exit();
}
elseif(isset($_SESSION['id_login'])) {
header("Location:login.php?p=3");
exit();
}
?>
次に、パラメーターp
がlogin.phpに送り返され、それに応じたメッセージが表示されます。
<?php
if(isset($_GET['p'])) {
$p = $_GET["p"];
if($p=="1")
echo "<p class=\"red\">You didn't fill the form.</p><br></br>";
if($p=="2")
echo "<p class=\"red\">User exists.</p><br></br>";
if($p=="3")
header("Location: index.php");
}
?>
ただし、ログインに成功した後に index.php に移動する代わりに、ユーザーが以前にアクセスしたページに移動する必要があります。さまざまな方法で試しましたが、まったく機能しないか、login.php に戻ります。学校のプロジェクトでこれを行っているので、超安全である必要はありません。
また、私は自分自身をかなり初心者だと考えているので、しばらくお待ちください:D