Как разделить логику приложения до и после входа в систему? - PullRequest
1 голос
/ 28 апреля 2011

Вот идея .... ... У меня есть index.php .... ... Приложение имеет только одну страницу, как и стена на Facebook, если пользователь вошел в систему, он может увидеть свою "стену", но если он не вошел, он увидит страницу регистрации. .... ....

Должен ли я поместить все эти логин в index.php? или мне нужно разделить два index.php ... один - logined_index.php, а notLogined_index.php ??

Кроме того, как я могу запретить кому-то, кто не вошел в index.php? Спасибо.

Ответы [ 3 ]

1 голос
/ 28 апреля 2011

Если ваша заявка останется маленькой, вам не понадобится отдельный файл. Вы можете использовать что-то вроде этого:

<?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 голосов
/ 28 апреля 2011

Вы должны понимать, для какого сеанса.

Если это одностраничное приложение, вы можете сделать свой 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
}
0 голосов
/ 28 апреля 2011

Я предлагаю вам поместить страницу входа в отдельный файл и перенаправлять туда со всех страниц, требующих входа, например, вот так:

<?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();
}
?>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...