2012-07-19 70 views
1

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

所以我想问的是:我怎样才能防止用户在他们登录之前访问处理,主要或注销页面,我的意思是,如果我不限制它,登录操作通过一些手段是无用的。我正在使用wamp开发Web系统。

我已经考虑过使用会话变量,但是,我不知道如何检查变量的值。如果我在登录页面开始会话,那么如果我跳过登录页面,但是直接进入主页面,那么我的主页面中是否有会话变量?

回答

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

关于你的问题,在每个页面你将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

为什么不只在每个非登录页面添加if(!$ _ SESSION ['logged_in'])){//重定向}'' – Luceos 2012-07-19 07:58:17

+0

是的,它也应该工作;)!只是给他举了个例子。感谢您编辑:) – y2ok 2012-07-19 07:59:15

+0

@Luceos,人们可以禁用浏览器中的重定向,因此无论如何看到页面 – Roman 2012-07-19 07:59:54

0

很好,这是我会做什么。如果会话变量包含登录页面的用户名,如果它没有显示错误404页面,或者将用户重定向到任何错误页面,请使用if语句进行检查......您可能想要无论如何创建自己(以便它重定向到登录页面)。

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

你也可以创建一个新的文件,并把这个代码中有让你叫上everypage,将要求用户访问之前,登录....

0

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

相关问题