我只是希望了解我计划如何应对这种情况。
情况:我正在开发一个学校的网站,其中严格的教育委员会政策不允许任何人让我访问该网站的FTP。但是,学校将在一个“网页”课程中有一组六名学生来管理需要经常更新的10-12页。
页面看起来完全相同:标题,导航,侧面导航(针对特定部分(体育,学术等))和主要内容。
主要内容由div“content”提供,所以我想要做的只是从用另一个文件编辑的Mysql数据库加载所有#content的内容(我非常承诺使用预准备语句) )。
您对此有何看法,或者可能是更好的方法?谢谢!
答案 0 :(得分:2)
当您在数据库中加密标记时,为了得到您需要的标记:
当您将标记保存在文件中时,您需要做的就是通过require()
语言构造包含该标记
修改强>
非常具体 - 请注意,将动态HTML内容存储在表格中并不是一个坏主意。这是常规练习。但是,如果您还在每个页面的表格中存储标题,导航等静态内容,则只会导致数据重复。
我个人会存储我从未在文件中更改过的部分。倾向于“动态”的部分我将存储在一个表中。我将使用jquery-ajax通过TinyMCE添加/编辑它们。
我如何做到这一点的一个例子:
档案:page_view.php
<?php
class Page_View // <- This isn't MVC
{
private $data = array();
public function render()
{
include('page_template.phtml');
exit();
}
private function getTitle()
{
return $this->data['title'];
}
private function getBody()
{
return $this->data['body'];
}
private function getStaticBlock($file)
{
include($file);
}
public function setBody($body)
{
$this->data['body'] = $body;
}
public function setTitle($title)
{
$this->data['title'] = $title;
}
}
文件:page_template.phtml ?&GT;
<!DOCTYPE html>
<html>
<head>
<title><?php echo $this->getTitle(); ?></title>
<?php $this->getStaticBlock('/templates/blocks/header.phtml'); ?>
<body>
<div id="navigation">
<?php $this->getStaticBlock('/templates/blocks/navigation.phtml'); ?>
</div>
<div id="content"><?php echo $this->getBody(); ?></div>
</body>
</head>
</html>
使用示例:
<?php
// $data is what you got from a table
$page = new Page_View();
$page->setTitle($data['title']);
$page->setBody($data['body']);
$page->render();
答案 1 :(得分:1)
是的,在数据库中存储任意HTML是一个噩梦来维护和保护。在设计新解决方案之前,我会更仔细地研究您要完成的任务。
我强烈推荐内容管理系统。他们有能力处理这类工作,从头开始重建工作毫无意义。
如果所选学生经常更新网站,请考虑将网站的该部分分开。
例如,如果主网站是静态的,但经常更新的部分是博客,请设置静态网站以及子域或带有wordpress博客的子目录。
如果学生要编辑页面的实际内容,像Drupal这样的CMS对这项任务来说更有效。