Зона только для участников
При создании страницы, которая должна быть доступна только для участников, правильный php:
<?php if($_SESSION['logged_in']): ?>
// all code for page here
<?php endif; ?>
Весь ли мой html/php находится между этими двумя строками?
Есть ли какие-либо другие способы сделать это лучше?
О каких проблемах безопасности я должен знать?
Мой контент не является особо чувствительным, но может стать таковым в будущем.
4 answers
Говоря строго с точки зрения написания разборчивого кода, почему бы и нет:
<?php
if (!$_SESSION['logged_in']) {
header("Location: login.php");
exit;
}
?>
<!-- // all code for page here -->
Или аналогичный.
Лучшим способом может быть:
<?php if(!$_SESSION['logged_in']) { header('Location:loginpage.php'); exit; } ?>
Затем ваша страница может продолжаться в обычном режиме, и пользователь, который не вошел в систему, вместо этого получит страницу входа.
Редактировать: добавлен требуемый вызов exit
в соответствии с документацией заголовка.
Вы, конечно, можете поместить весь свой HTML/PHP код между условными, если хотите. Просто имейте в виду, что если вы это сделаете, пользователи, не прошедшие проверку подлинности, не увидят ничего, когда они попадут на страницу. Возможно, вы захотите поместить элементы дизайна вне условного обозначения или, по крайней мере, использовать другое: перед endif;
<?php
a = checksession(args); //your own function for checking session
if(!a)
header("Location: 401.shtml"); //This can contain advisory regarding login
?>
Это будет вверху вашей страницы, остальное вы можете решить сами.