繁体   English   中英

会员专区

[英]Members only area

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

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

// all code for page here

<?php endif; ?>

我的所有 html / php 是否都位于这两行之间?

还有其他更好的方法吗?

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

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

在编写清晰的代码方面严格地说,为什么不:

<?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; } ?>

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

编辑:根据 header 文档添加了所需的exit调用。

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

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

这将在您的页面顶部,您可以决定 rest。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM