2011-04-28 77 views
1

这里有个想法....我有一个 index.php ....这个应用程序只有一个页面,就像facebook墙一样,如果用户登录,他们可以看到他们的“墙”,但如果他们没有登录,他们看到一个注册页...... ....如何在登录前后分离应用程序逻辑?

我应该把所有这些登录在index.php?或者我需要分开两个index.php ...一个是logined_index.php,而notLogined_index.php?

此外,如何防止未登录index.php的人?谢谢。

回答

1

如果您的应用程序将仍然较小,没有必要单独的文件。你可以使用这样的东西:

<?php 
    session_start(); 
    if (!isset($_SESSION['uid']) | $_SESSION['uid']=='') $_SESSION['uid']=0; 

    if($_SESSION['uid']!=0) { 
     if (/* user logs out */) { 
      session_destroy(); 
      /* show register/login form */ 
     } 
     else { 
      /* main page code goes here */ 
     } 
    } 
    else { 
     if (/* register details entered */) { 
      if (/* register details valid */) { 
       /* register the user and display it all went successful */ 
      } 
      else { 
       /* wrong register info - display error */ 
      } 
     } 
     else if (/* login details enetered */) { 
       if (/* user exists and login correct */) { 
       $_SESSION['uid'] = /* set the id of the logged user */; 
       /* log user in and redirect to main page */ 
      } 
         else { 
       /* wrong login info - display error */ 
      } 
     } 
     else { 
      /* show register/login form */ 
     } 
    } 
?> 

这只是一个简单的代码布局建立。

0

我建议你从每一个需要登录,这样,例如把页面登录页面在一个单独的文件和重定向有:

<?php 
// at the very beginning of index.php 
if($not_logged_in){ 
    // redirect user to a login page 
    header('Location: /login_please.php?return_to='.urlencode($_SERVER['REQUEST_URI'])); 
    die(); 
} 
?> 
0

你应该明白什么会议。

如果它是一个页面的应用程序,你可以让你的index.php充当控制器,并可以创建单独的模板或视图进行登录和注册。

并检查用户请求的是否不允许访问该页面而不登录检查会话并将其重定向到注册或登录视图。如果他们已经登录,将他们重定向到你的墙上或受保护的页面。

为例

session_start() 
if(isset($_SESSION['user_id'])) 
{ 
    //user is logged in and redirect them to main page 
} 
else 
{ 
    //ask him to register or log in 
}