我目前正在开发一个简单的网络系统,所以用户首先会被引导到一个登录页面,然后是一个处理页面。如果它提供的帐号数据正确,它会被引导到主页面,所以它可以执行一些操作,最后它可以注销。
所以我想问的是:如何防止用户在登录之前访问处理、主页或注销页面,我的意思是,如果我不限制它,登录操作在某种程度上是无用的。我正在使用 wamp 开发网络系统。
我考虑过使用会话变量,但是,我不知道如何检查变量的值。如果我在登录页面开始会话,那么如果我跳过登录页面但直接转到主页,我是否在主页中存在这些会话变量?
1)session_start();
在 php 页面顶部添加以初始化会话。
2)添加if语句
if($_SESSION['logged_in'] == 1) { ..show page.. } else { show login page }
3)创建一个验证数据的登录表单,如果数据正确,则添加$_SESSION['logged_in'] = 1;
并重定向到带有注销按钮的配置文件页面。
就这样 :)!
我建议您查看一些教程,因为它会为您提供更多信息如何做到这一点 - http://www.intechgrity.com/create-login-admin-logout-page-in-php-w/或任何其他通过谷歌链接 - “如何使用会话创建登录/注销功能”。
关于您的问题,在您将放在session_start();
文件开头的每个页面中,它们将包含您为用户指定的所有会话。
编辑:
添加了一些有用的链接 -
http://www.php.net/manual/en/book.session.php
好吧,这就是我要做的。使用 if 语句检查会话变量是否存在,例如,登录页面中的用户名存在,然后如果它没有显示错误 404 页面,或者将用户重定向到任何错误页面......你可能想要无论如何都要自己创建(以便将它们重定向回登录页面)。
<?
session_start();
if(!$_SESSION['username']){
header("Location: HTTP/1.1 404 File Not Found", 404);
exit;}
?>
您还可以创建一个新文件并将此代码放在那里,以便您在需要用户登录才能访问它的每个页面上调用它......
但是第一次尝试访问非登录页面,然后您将被重定向到登录页面,然后尝试第二次访问相同的非登录页面,即使您没有登录,您也将拥有访问权限。