【问题标题】:Blogging with PHP and MySQL使用 PHP 和 MySQL 写博客
【发布时间】:2012-04-30 11:14:58
【问题描述】:

我一直在学习使用 PHP 和 MySQL 制作博客的教程。但在教程结束时,完成的博客允许任何访问网站的用户编辑类别和发布。将网站的某些部分限制为我自己的最佳方式是什么?我想到了一个只有我可以登录的登录系统,或者.htaccess 中可能有一种方法。有什么建议吗?

【问题讨论】:

    标签: php mysql .htaccess blogs


    【解决方案1】:

    看看 PHP sessions.

    您需要一些用户列表来进行身份验证。如果这是一个数据库,请创建一个包含用户名和密码列的用户表。

    在每一页的开头都输入start_session()。这会保留页面之间的会话。

    创建一个登录页面和链接。在登录页面上,您根据您的用户列表验证传入的用户名和散列密码。如果用户通过身份验证,则添加一个会话变量来存储哪个用户已登录。另外,登录后regenerate the session ID 以防止会话劫持。

    在需要成员访问的每个页面上,检查以确保用户已登录。如果没有,则将他们重定向到登录页面。

    如果您使用 .htaccess 设置 HTTP 基本身份验证,您将希望仅阻止允许用户编辑博客的页面。

    考虑在任一情况下添加 SSL (HTTPS),否则,如果人们在开放网络上,登录凭据可能会被盗。

    【讨论】:

      【解决方案2】:

      构建您自己的 ACL 层,查看网络资源,但此链接应该是一个很好的起点

      Implement ACL in PHP - Stackoverflow

      【讨论】:

        【解决方案3】:

        你提到的两种方式都可以。

        或者您可以只安装一个强大、安全、功能齐全的博客。例如http://wordpress.org

        【讨论】:

          【解决方案4】:

          创建一个用户登录模块并对该位置使用会话检查,例如用户登录并且您将他的用户 ID 或其他内容存储在 $_SESSION['is_user'] 中,然后检查私人内容

          if(isset($_SESSION['is_user'])){
          //Show
          } else {
          //Redirect to login page
          }
          

          【讨论】:

            【解决方案5】:

            我认为首先更改帖子编辑页面的链接并使用登录系统。

            示例代码,

            将文件另存为: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
            }
            }
            ?>
            

            【讨论】:

              【解决方案6】:

              如果你想要一个个人博客或类似的东西,最好使用社区支持的,你不需要重新发明,把你的时间花在更有成效的事情上。

              您的选择是:

              【讨论】:

              • 这不是问题的解决方案:p
              • DRY,如果以前有人这样做,您可以节省时间做其他事情。自我的问题是问题,为什么他需要这样做……?但是好的,如果他需要做访问控制列表,Zen 有一个很好的库,Zen_ACL。
              猜你喜欢
              • 2018-10-30
              • 1970-01-01
              • 1970-01-01
              • 2012-10-14
              • 2010-12-07
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              相关资源
              最近更新 更多