我已经用php编写了自己的cms。它很简单,但是它不允许我做一些事情,比如重定向 header()
从动态页面。
以下是其结构(非常简化):
<?php
$db = new PDO...
try {
//getting page info from database (by $_GET['id'])
//and put results into $pageInfo
$stmt->prepare
//.. catch etc...
?>
<!doctype html>
<html>
<head><title><?=$pageInfo['title'];?></title></head>
<body>
<?php
//this file below cannot contain a php redirect, because headers are already sent
include($pageInfo['content_path']);
?>
</body>
</html>
有一个页面是动态的,可以通过更改get参数id的值来显示其他页面。
包含的内容通常包含php脚本。
我在网上查过,但不知道如何解决这个问题。
我可以创建一个 header.html
和一个 footer.html
把它们写进每一页?但是如果在包含内容之前包含头文件,它不会发送头文件吗?怎样?
如果这个问题看起来很愚蠢,我真的很抱歉,但是我不知道怎么做。我没有人教我,所以我必须自己学习,但有些东西我不知道去哪里找。
提前谢谢。
1条答案
按热度按时间5uzkadbs1#
首选的方法是将应用程序分成几个部分,一部分执行代码(控制器或核心),另一部分显示某些内容(视图或模板)。
例如,在mvc(model/view/controller)中,您的单个页面只是一个调度器,它调用一个控制器,控制器执行php代码,并通过使用第二部分模型获取一些数据,最后调用一个模板来显示数据。
在您的示例中,可以首先为每个调用包含两个文件,一个只包含php代码并获取所有数据,然后包含一个带有变量的html模板和显示数据所需的非常简单的代码。然后可以在php部分(控制器)中执行重定向和退出。