Перезапись конфигурационного файла для моей CMS

#php #mysql #content-management-system

#php #mysql #система управления контентом

Вопрос:

Я ищу наилучшие варианты помимо сохранения значений в базе данных MySQL, я бы предпочел иметь отдельный файл для моих определений или переменных.

Что мне нужно сделать, так это иметь configuration.php файл, который у меня уже есть для моей панели администратора, который я заполнил, но внутри панели администратора они смогут редактировать такие вещи, как заголовок страницы или что-нибудь базовое, если на то пошло. Итак, я подумал, что у меня мог бы быть static_configuration.php файл, который содержал бы все необходимые мне данные.

Например, перед редактированием (static_configuration)

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

Моя идея состоит в том, чтобы использовать это как шаблон, и когда они будут редактировать, я fopen fwrite и т.д. в основном перезапишу configuration.php

Пример после редактирования (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 (мои мысли таковы: не используйте что-либо, если вы не знаете, как это работает), колледж также заставит меня написать много этих методов, поэтому я спрашиваю из любопытства.

Ответ №1:

Пока вы правильно экранируете данные перед их определением, я думаю, у вас не возникнет проблем.

PS: для чтения и записи файлов проверьте file_get_contents() и file_put_contents() 😛

Но если это больше для любопытства, проверьте методы gettext() 😉 (я думаю, вы делаете это для языка)

Комментарии:

1. спасибо, конечно, я рассмотрю эти методы. Я надеялся, что вызываю огромную нагрузку на сервер или что-то в этом роде.

2. мммм, ну, не делайте этого при каждом посещении, лучше кэшируйте эти файлы, как только они будут готовы, и вызывайте их позже, когда они вам понадобятся, или да, вам придется очень быстро перегружать сервер ^^

3. Нет, они вызываются только тогда, когда пользователь отправляет форму. Затем эти определения будут использоваться позже в других файлах. Изменяется только тогда, когда пользователь хочет, чтобы они

4. ну что ж, тогда просто проверьте, что пользователь не рассылает спам по форме, и вы не должны перегружаться =)

5. Спасибо, Боб, да, я собираюсь добавить определение того, как давно была отправлена форма и были ли внесены какие-либо изменения.