【问题标题】:Advice: building a non-database driven simple CMS in PHP [closed]建议:在 PHP 中构建一个非数据库驱动的简单 CMS [关闭]
【发布时间】:2011-01-19 11:31:06
【问题描述】:
我正在开发一个需要非常简单的 CMS 的网站 - 基本上主页上有一段文本需要客户编辑。他们目前的托管计划不允许使用数据库,包括一个数据库将每月额外花费 X 美元,我认为这对于这样一个基本系统来说是不必要的。
该网站目前是使用 Codeignitor 构建的。我打算使用平面 PHP 或 TXT 文件编写其中的 CMS 部分,是否有值得考虑的替代方法,优缺点是什么?
【问题讨论】:
标签:
php
content-management-system
flat-file
【解决方案1】:
轻松的CMS
它的 ftp 进入您的主机帐户,读取您的 html,并查找具有 class="cushy" 的标签并使这些内容字段可编辑。它对你想要的有好处。
【解决方案2】:
好的,除此之外,我选择了自定义平面文件系统。我查看了一些推荐的非 DB CMS 系统,它们看起来相当不错——尤其是我后来发现的这个:http://get-simple.info/
我自己构建的原因主要是因为该站点已经在 Codeignitor 框架上,我不想使用不同的框架来重建它。
所以我现在的问题是 - 如果我的系统将数据存储在两个 txt 文件中:一个用于用户数据,一个用于站点内容,如果我将站点内容文件权限设置为 RW,是否存在大量安全问题?该网站很小,我无法想象有人会想要破解它,但我仍然想知道是否存在任何重大安全隐患。
【解决方案4】:
sqlite 呢?它只是一个文件,不需要安装任何东西?但是,如果这也不受欢迎,您可以将内容保存在 txt 文件中并有一个 php 来读取它,然后放入您的模板中。
【解决方案5】:
我曾经通过简单地将标记作为 HTML cmets 放入 HTML 文件中解决了这个问题,然后让我的 PHP 脚本解析文件并在标记之间插入所需的文本。通过这种方式,除了处理来自 CMS 的表单提交的 PHP 和静态 HTML 页面之外,您不需要其他文件。
换句话说,将文件读入字符串,explode() 使用标记作为分隔符的字符串,修改第二个(如果标记包含单个可编辑部分)数组元素以包含由提交的新文本用户,然后将数组内爆回字符串,然后将字符串作为完整文件写回。