如何分离登录前后的应用程序逻辑



思路如下.... ...我有一个index . php……该应用程序只有一个页面,就像facebook的墙,如果用户登录,他们可以看到他们的"墙",但如果他们没有登录,他们看到一个注册页面.... ....

我应该把所有这些登录到index.php吗?或者我需要分开两个index.php…一个是logined_index.php和notLogined_index.php??

此外,我如何阻止没有在index.php中登录的人?谢谢你!

如果您的应用程序将保持较小,则不需要单独的文件。你可以这样写:

<?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 */
        }
    }
?>

我建议您将登录页面放在一个单独的文件中,并从需要登录的每个页面重定向到那里,像这样,例如:

<?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();
}
?>

您应该了解会话的作用。

如果它是单页应用,你可以让你的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
}

相关内容

  • 没有找到相关文章

最新更新