成功登录后,用户应该被重定向到他来自的页面,比如说他正在浏览一篇文章并想要登录以便留下评论,那么他应该被重定向到他正在浏览的文章。以下是我的建议:
login.php 显示登录表单:
<form method="post" action="login-check.php">
... //input for username and password
</form>
login-check.php文件用于检查用户名和密码是否已输入,用户是否存在以及是否已登录,如果向login.php发送了一个p
参数,则会进行检查:
<?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。