#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. Спасибо, Боб, да, я собираюсь добавить определение того, как давно была отправлена форма и были ли внесены какие-либо изменения.