我是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";
}
在登录表单操作中,如果用户名和密码正确,则可以相应地设置会话值。