如果用户已通过身份验证或未通过身份验证,则PHP重定向


PHP redirect if the user has been authenticated or not

我是php的新手(在中1个半月(,我已经设置了一个php登录脚本,该脚本会与我设置的数据库检查他们是否注册,并且运行良好,但我想阻止用户登录,而不是在地址栏中键入URL,通过键入http://example.com/home.html如果他们真的尝试这样做,检查他们是否已经登录,如果还没有,则将他们重定向到登录页面以输入凭据。我到处找了一个,它们要么根本帮不上我,要么让一个PHP新手很难理解。我相信它会包括php会话的使用,但我不完全确定如何编码或编写

感谢

使用会话:

if (!$_SESSION['is_logged_in']) {
   redirect_to_login_page();
}

然后在您的登录脚本中,在他们成功登录后,您只需拥有

$_SESSION['is_logged_in'] = true;

并且您的任何"受保护"页面都将允许它们通过。

假设您的登录脚本执行以下操作:

$_SESSION['userid'] = ...;

然后你可以做:

if( !isset($_SESSION['userid'])) die(header("Location:/login.php"));

当然,还有更优雅的解决方案,但它们依赖于您设置的更具体的方面。

您可以先编写一些会话检查,然后将该文件包含在所有需要保护的文件之上。例如

session_start();
if($_SESSION['authenticated']!=1)
{
echo "Not logged in";
}

在登录表单操作中,如果用户名和密码正确,则可以相应地设置会话值。