【问题标题】:Overwriting config file for my CMS覆盖我的 CMS 的配置文件
【发布时间】:2014-07-04 02:20:03
【问题描述】:

除了将值存储在 mySQL 数据库中之外,我还在寻找最佳选择,我宁愿为我的定义或变量提供一个单一文件。

我需要做的是有一个configuration.php 文件,我已经为我的管理面板填写了一个文件,但在管理面板中,他们将能够编辑诸如页面标题或任何内容之类的内容基本的。所以我想我可以有一个static_configuration.php 文件来保存我需要的所有数据。

EX 编辑前 (static_configuration)

define("_TITLE","{TITLE}");
define("_DESC_","{DESC}");
define("_KEYW_","{KEYW}");

我的想法是用这个作为模板,当他们编辑时,我会fopenfwrite等基本覆盖configuration.php

EX 编辑后 (configuration.php)

define("_TITLE_","Great Turns");
define("_DESC_","Great turns is a turned based RPG online game......");
define("_KEYW_","great turns online rpg, great turns");

我的想法很有效,到目前为止我已经实现了类似的东西

if(file_exists('static_configuration.php')){
      $file= file('static_configuration.php', FILE_IGNORE_NEW_LINES | FILE_SKIP_EMPTY_LINES);
      foreach($file as $configs){
        $channel.= str_replace(array('{TITLE}','{DESC}','{KEYW}'),array("BASE TURN","This is a website","cool,dude,whats up"),$configs);
      }
    $data = fopen("configurations.php","c+");
     fwrite($data,$channel);
     fclose($data);
  }

手头的问题是这是一个安全的赌注还是我应该采取不同的路线?我的意思是我需要使用$_POST 请求使代码更具动态性,但到目前为止它确实有效。请赐教,因为我只是想学习和编写一个简单的 CMS(除非您知道它是如何工作的,否则我的想法是不要使用某些东西),大学也会让我写很多这些方法,所以我出于好奇而问.

【问题讨论】:

    标签: php mysql content-management-system


    【解决方案1】:

    虽然您在定义数据之前正确转义了数据,但我认为您不会遇到问题。

    PS:读写文件,请查看file_get_contents()和file_put_contents():P

    但如果更多是出于好奇,请查看gettext() 方法;)(我认为您这样做是为了语言)

    【讨论】:

    • 谢谢,我一定会看看这些方法。我希望我对服务器或类似的东西造成了巨大的压力。
    • mmhhh,好吧,不要每次访问都这样做,最好在完成后缓存这些文件,并在需要时调用它们,或者是的,你应该非常快地超载服务器^^跨度>
    • 不,只有在用户提交表单时才会调用它们。然后这些定义将稍后在其他文件中使用。仅在用户希望时更改
    • 嗯,那就检查一下用户没有在表单中发送垃圾邮件,你不应该超载 =)
    • 谢谢 Bob,是的,我将添加一个检测表单提交的时间以及是否进行了任何更改。
    猜你喜欢
    • 2019-07-02
    • 2018-11-29
    • 1970-01-01
    • 2013-10-18
    • 1970-01-01
    • 1970-01-01
    • 2020-10-22
    • 2015-09-16
    • 1970-01-01
    相关资源
    最近更新 更多