会员专区

时间:2011-06-28 13:33:34

标签: php html security session membership

在构建仅供成员访问的页面时,以下是正确的php:

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

// all code for page here

<?php endif; ?>

我的所有html / php都在这两行之间吗?

还有其他方法可以做得更好吗?

我应该注意哪些安全问题?

我的内容不是特别敏感,但可能在将来。

4 个答案:

答案 0 :(得分:6)

严格地说是写清晰的代码,为什么不呢:

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

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

或类似。

答案 1 :(得分:2)

更好的方法可能是:

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

然后您的页面可以正常继续,而未登录的用户将获得登录页面。

修改根据标题文档添加了所需的exit调用。

答案 2 :(得分:1)

如果您愿意,您当然可以将所有HTML / PHP代码置于条件之间。请注意,如果您这样做,未经身份验证的用户在点击页面时将看不到任何。您可能希望将设计元素放在条件之外,或者至少使用else:在endif之前;

答案 3 :(得分:0)

<?php
 a = checksession(args); //your own function for checking session
 if(!a)
   header("Location: 401.shtml");  //This can contain advisory regarding login
?>    

这将位于页面的顶部,您可以决定休息。