Зона только для участников


При создании страницы, которая должна быть доступна только для участников, правильный php:

<?php if($_SESSION['logged_in']): ?>

// all code for page here

<?php endif; ?>

Весь ли мой html/php находится между этими двумя строками?

Есть ли какие-либо другие способы сделать это лучше?

О каких проблемах безопасности я должен знать?

Мой контент не является особо чувствительным, но может стать таковым в будущем.

Author: Lightness Races in Orbit, 2011-06-28

4 answers

Говоря строго с точки зрения написания разборчивого кода, почему бы и нет:

<?php
if (!$_SESSION['logged_in']) {
   header("Location: login.php");
   exit;
}
?>

<!-- // all code for page here -->

Или аналогичный.

 6
Author: Lightness Races in Orbit, 2011-06-28 13:35:34

Лучшим способом может быть:

<?php if(!$_SESSION['logged_in']) { header('Location:loginpage.php'); exit; } ?>

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

Редактировать: добавлен требуемый вызов exit в соответствии с документацией заголовка.

 2
Author: shanethehat, 2011-06-28 13:47:14

Вы, конечно, можете поместить весь свой HTML/PHP код между условными, если хотите. Просто имейте в виду, что если вы это сделаете, пользователи, не прошедшие проверку подлинности, не увидят ничего, когда они попадут на страницу. Возможно, вы захотите поместить элементы дизайна вне условного обозначения или, по крайней мере, использовать другое: перед endif;

 1
Author: Andy Soell, 2011-06-28 13:36:41
<?php
 a = checksession(args); //your own function for checking session
 if(!a)
   header("Location: 401.shtml");  //This can contain advisory regarding login
?>    

Это будет вверху вашей страницы, остальное вы можете решить сами.

 0
Author: check123, 2011-06-28 13:40:40