Что я делаю, когда пользователь входит в систему, я устанавливаю переменной сессии, как и
$_SESSION['loggedin'] = true;
Затем на каждой странице я делаю это в самом начале страницы
session_start();
if(!isset($_SESSION['loggedin'] || $_SESSION['loggedin'] !== true){
header('Location: http://www.foo.com/login.php');
exit(); <-- THIS IS VERY IMPORTANT
}
УБЕДИТЕСЬ, чтобы включить exit(); вызов функции. В противном случае клиент может отклонить запрос перенаправления, а остальная часть страницы будет отображать. Таким образом, даже если клиент отрицает запрос на перенаправление, все, что они получают, является пустой страницей. получайте удовольствие :)
PS: Если вы хотите быть умным и не позволять себе повторять код, создайте PHP-файл под названием «functions.php» (или что-то похожее на то, что вам нравится). Затем, внутри functions.php создать функцию, называемую «requireLogin()»
function requireLogin(){
if(!isset($_SESSION['loggedin'] || $_SESSION['loggedin'] !== true){
header('Location: http://www.foo.com/login.php');
exit(); <-- THIS IS VERY IMPORTANT
}
}
Теперь на каждой странице, которую вы хотите защитить, сделать это БУМ страница
session_start();
require('functions.php');
reuireLogin();
защищен, и начало ваших страниц выглядит намного чище.
Итак, вы хотите, чтобы они могли добраться до 'mydocument.pdf', когда не вошли в систему или нет? – AbraCadaver
Может быть, это полезно, я думаю, что ответ хороший: https: // stackoverflow.com/questions/19645196/php-restrict-access-to-files-in-directory – Bolli