【发布时间】:2012-04-30 11:14:58
【问题描述】:
我一直在学习使用 PHP 和 MySQL 制作博客的教程。但在教程结束时,完成的博客允许任何访问网站的用户编辑类别和发布。将网站的某些部分限制为我自己的最佳方式是什么?我想到了一个只有我可以登录的登录系统,或者.htaccess 中可能有一种方法。有什么建议吗?
【问题讨论】:
我一直在学习使用 PHP 和 MySQL 制作博客的教程。但在教程结束时,完成的博客允许任何访问网站的用户编辑类别和发布。将网站的某些部分限制为我自己的最佳方式是什么?我想到了一个只有我可以登录的登录系统,或者.htaccess 中可能有一种方法。有什么建议吗?
【问题讨论】:
看看 PHP sessions.
您需要一些用户列表来进行身份验证。如果这是一个数据库,请创建一个包含用户名和密码列的用户表。
在每一页的开头都输入start_session()。这会保留页面之间的会话。
创建一个登录页面和链接。在登录页面上,您根据您的用户列表验证传入的用户名和散列密码。如果用户通过身份验证,则添加一个会话变量来存储哪个用户已登录。另外,登录后regenerate the session ID 以防止会话劫持。
在需要成员访问的每个页面上,检查以确保用户已登录。如果没有,则将他们重定向到登录页面。
如果您使用 .htaccess 设置 HTTP 基本身份验证,您将希望仅阻止允许用户编辑博客的页面。
考虑在任一情况下添加 SSL (HTTPS),否则,如果人们在开放网络上,登录凭据可能会被盗。
【讨论】:
构建您自己的 ACL 层,查看网络资源,但此链接应该是一个很好的起点
【讨论】:
你提到的两种方式都可以。
或者您可以只安装一个强大、安全、功能齐全的博客。例如http://wordpress.org
【讨论】:
创建一个用户登录模块并对该位置使用会话检查,例如用户登录并且您将他的用户 ID 或其他内容存储在 $_SESSION['is_user'] 中,然后检查私人内容
if(isset($_SESSION['is_user'])){
//Show
} else {
//Redirect to login page
}
【讨论】:
我认为首先更改帖子编辑页面的链接并使用登录系统。
示例代码,
将文件另存为:login.php
<form method="post">
name : <input name="name">
password : <input name="name">
<button> login </button>
</form>
<?php
session_start();
define('name','your name');
define('password','your password');
if($_SERVER['REQUEST_METHOD'] == "post"){
if($_POST['name' == name && $_POST['password'] == password){
$_SESSION['logged_in'] = 'yes';
header('location:admin.php'); //you can change this
}
}
?>
【讨论】:
如果你想要一个个人博客或类似的东西,最好使用社区支持的,你不需要重新发明,把你的时间花在更有成效的事情上。
您的选择是:
【讨论】: