如果尚未登录,则阻止用户访问

时间:2012-07-19 07:53:43

标签: php html

我目前正在开发一个简单的Web系统,因此用户首先会被定向到登录页面,然后是一个处理页面。如果提供的帐户数据正确,它将被定向到主页面,因此它可以执行一些操作,最后它可以注销。

所以我想问的是:如何阻止用户在登录之前访问处理,主页或注销页面,我的意思是,如果我不限制它,登录操作有些无用。我正在使用wamp来开发Web系统。

我考虑过使用会话变量,但是,我不知道如何检查变量的值。如果我在登录页面开始一个会话,那么如果我跳过登录页面但指示转到主页面,我是否在主页面中显示了这些会话变量?

3 个答案:

答案 0 :(得分:4)

1)在php页面顶部添加session_start();以初始化会话。

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/或通过谷歌的任何其他链接 - “如何使用SESSIONS创建登录/注销功能”。

关于您的问题,在每个页面中,您将session_start();放在文件的开头,它们将包含您为用户指定的所有会话。

修改

添加了一些有用的链接 -

http://www.php.net/manual/en/book.session.php

http://www.tizag.com/phpT/phpsessions.php/

http://www.w3schools.com/php/php_sessions.asp

答案 1 :(得分:0)

嗯,这就是我要做的。如果一个会话变量包含例如登录页面中的用户名,那么检查if语句,如果它没有显示错误404页面,或者将用户重定向到任何错误页面...你可能想要无论如何都要自己创建(以便将它们重定向回登录页面)。

<?
session_start();
if(!$_SESSION['username']){
 header("Location: HTTP/1.1 404 File Not Found", 404);
          exit;}
?>

您还可以创建一个新文件并将此代码放在那里,以便您在访问它之前需要用户登录的每个页面上调用它....

答案 2 :(得分:0)

但是第一次尝试访问非登录页面然后您将被重定向到登录页面,然后尝试访问相同的非登录页面,即使您没有登录,您也可以第二次访问该页面