Статус входа пользователя с использованием сессий в одном файле inc_ - PullRequest
1 голос
/ 02 февраля 2012

Я пытаюсь создать файл включения php для добавления на все мои страницы, чтобы я мог скрыть определенную информацию о странице от пользователей, которые не вошли в систему.

Надеюсь, я прокомментировал достаточно кода, чтобы прояснить, что я планирую ..

Является ли это лучшим способом сохранить все это в одном файле, а не делать 4 или 5 других файлов для обработки статуса входа пользователя?

Весь вклад приветствуется. Спасибо.

php session_start(); 

// $layout is the top half of a div that will contain the login status bar (the closing tag is at the bottom of this include file.
$layout='
    <style type="text/css">
    body {
        font-family: Arial, Helvetica, sans-serif;      
        margin:0px;
    }
    .loginbar {
        font-size: 12px;
        text-align: right;
        padding-top: 5px;
        padding-right: 25px;
        height: 35px;
        width: 100%;
        color: #fff;
        background-color: #404040;
    }
    </style>
    <div class="loginbar">';

if ($_GET['logout']=='yes'){ // Has the user clicked the log out link?

    start_session();
    destroy_session();

} else { // No, so carry on..

        if !isset($_SESSION['lastname']){ //Is a session already running?

            if(!empty($_POST['user']) || !empty($_POST['pass'])) {
                #READ $_POST and check $_POST['username'] && $_POST['password'] against the database entries and get the respective 'FirstName' and 'LastName' of the user.
                # Set Session vars

                } else (empty($_POST['user']) || empty($_POST['pass'])) {
                echo $layout;
                # DISPLAY LOGIN FORM -> form will resend to this page
                }

        } else {
            echo $layout;
            echo "WELCOME ".$FirstName." ".$LastName;
            #display LOG OUT link. -> Link will send $_GET['logut='yes'] back to this page.
        }
}
?>
</div>

<?php /*
//////////////////////////////////////////////////////////////////////////////////////////////////////////
//In any pages that this inc file is used, I will attempt to block certain bits of information like this:

<?php if ($_SESSION["lastname"]){ ?>
<p style="color:#ff0000;">This is some text that you should only be able to read if you have logged in.</p>
<?php } ?> 

//////////////////////////////////////////////////////////////////////////////////////////////////////////
*/
?>

1 Ответ

0 голосов
/ 02 февраля 2012

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

Далее, как будто у вас есть код здесь, вы, похоже, вынуждены выгружать html на свои страницы. Если вы хотите только проверить состояние входа в систему, то, я думаю, вам следует попытаться очистить больше выходных инструкций, которые у вас есть, оставив их в файлах php, которые будут включать этот.

Таким образом, для чего-то более сложного вы не сможете полностью разделить логику входа в систему в один файл и включить ее без компромиссов.

Надеюсь, я понял ваш вопрос, и я не оффтоп :) :)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...