Константы — Как я могу использовать глобальный файл PHP, чтобы отслеживать, вошел ли пользователь в систему?

Я работаю над простым веб-приложением с PHP и MySQL. Я очень новичок в обеих технологиях. Я думал о создании класса или просто «верхнего» файла, который может отслеживать переменные, такие как IsLoggedIn, которые имеют 0 или 1, в зависимости от того, вошел ли пользователь в систему. Я хочу сделать это, потому что некоторые страницы будут отображаться по-разному. контент или нет контент в зависимости от того, вошел ли пользователь в систему.

Сначала я думал о создании класса BasePage, от которого наследуется каждый отдельный класс, а затем об изменении переменной в BasePage после того, как пользователь войдет в систему и выйдет из нее. Эта переменная может быть моим «переключателем», который отслеживает текущее состояние пользователя. Лучше сделать это через какой-нибудь файл с именем constants.php, который просто определяет константы и позволяет мне получить доступ к константам во всех моих других файлах? Или создание класса BasePage — лучшая практика?

Я открыт для любых других предложений. Благодарю. Вот пример класса BasePage, который я собирался создать:

<?php
class BasePage
{
public $loggedIn = false;

public function ToggleLogingStatus(){
$loggedIn = !$loggedIn;
}
}
?>

1

Решение

Простой файл PHP не может отследить оператор входа пользователя без какого-либо носителя. Решением этой проблемы является использование сессий PHP или файлов cookie. Просто имейте в виду, чтобы проверить все пользовательские входы. Не доверяйте никаким пользовательским данным, файлам cookie, сеансам (клиент отправляет файл cookie, а сервер захватывает сеанс для этого файла cookie в бэкэнде), переменным, поступающим от клиента.

Для начала сеансы будут делать свою работу, но, возможно, позже вы захотите сделать больше и переключиться на собственное управление сеансом с помощью файлов cookie. Может быть, тогда вы дойдете до того, что фреймворк PHP будет полезным и полезным. Примерами могут служить Laravel, Yii и Zend Framework.

tl; dr: Пока вы не создадите большие приложения, используйте сессии и Google для некоторых уроков по логинскрипту. Просто имейте в виду, что для связи с любой базой данных используйте PDO с подготовленными операторами, чтобы не попасть под перекрестный огонь SQL-инъекций.

2

Другие решения

У меня есть веб-приложение, которое также имеет защищенные страницы. Все мои страницы требуют своего рода базовой страницы с переменными соединения MySQL, часто используемыми функциями и классами и т. Д.

На этой странице у меня есть функция protectedPage (); Эта функция проверяет статус пользователя, вошедшего в систему. В верхней части каждой защищенной страницы вызывается эта функция. Так…

<?php
require_once('/home/ubuntu/keypage/base_page.php');
protectedPage();
// Rest of code
?>

Это находится сверху всех моих защищенных страниц. Функция проверяет наличие сеансов и другую полезную информацию о пользователе, например, уровень пользователя, если это необходимо.

Надеюсь, это поможет.

1

По вопросам рекламы [email protected]