如果一个用户已经登录,那么他应该被移到主页,但不能工作


If a user is already logged on. then he should be moved to home page but not working

我在测试简单的基本php站点时遇到了一个问题,即如果用户已经登录,那么每当他试图访问登录页面时,头都应该移到home.php。如何设置?使用的代码是:用于登录.php:

<body>
<center>
<font color=red>
<?php
if(isset($_GET['msg']))
echo $_GET['msg'];
?>
</font>
<form action=logcheck.php method=post>
User ID:<input type=text  name=uid><br>
Password:<input type=password  name=pass><br>
<input type=submit value=Login>
</form>
</body>

登录返回:

<?php
$u=$_POST['uid'];
$p=$_POST['pass'];
if($u==='rkgec' && $p==='123')
{
    session_start();
    $_SESSION['usrid']=$u;
    $_SESSION['passwd']=$p;
    header("Location: home.php");
}
else
    header("Location:login.php?msg=User ID or PAssword Not Match...!");
?>

对于home.php

<body bgcolor=pink>
<h1>Welcome, RKGEC</h1>
<br>
<?php
session_start();
if($_SESSION['usrid']===null || $_SESSION['passwd']===null)
    header('location:login.php');
echo "<font color=green><b>USER ID :$_SESSION[usrid]<br>";
echo "Password :$_SESSION[passwd]<br>";
?>
<a href=logout.php>LOGOUT</a>
</body>

登录时,向用户的会话添加一个新元素,并将其值设置为true。

像这样。

$_SESSION['logged_in'] = true;

在你的登录页面上,你可以做这样的检查。

if(isset($_SESSION['logged_in']) && $_SESSION['logged_in'] === true)
{
   header("Location: home.php");
}

Haider Ali的答案可能更好,但这里有一个更简单的方法

<?php
if ($_SESSION['logged_in'] == true) {
  header("Location: home.php");
} else {
  header("Location: login.php");
}
?>
相关文章: