Но эти переменные $ _GET объявляются после того, как я вызвал файл заголовка ...
это то, что вы делаете неправильно.
Вызывайте только заголовокпосле того, как вы получите все необходимые данные.
Для этого вам нужна правильная архитектура сайта.
Разделите ваш код на 3 части:
- основной шаблон сайта (включая ваш заголовок)
- определенный шаблон страницы
- код страницы.
При этой настройке вы никогда не столкнетесь с такой проблемой.
Типичный скрипт может выглядеть так
<?
//include our settings, connect to database etc.
include dirname($_SERVER['DOCUMENT_ROOT']).'/cfg/settings.php';
//getting required data
$DATA=dbgetarr("SELECT * FROM links");
// setting title for using in the main template
$pagetitle = "Links to friend sites";
//etc
//set page template filename
$tpl = "links.tpl.php";
//and then finally call a template:
include "main.tpl.php";
?>
где main.tpl.php
- это шаблон вашего основного сайта, включая общие части, такие как верхний и нижний колонтитулы, меню и т. Д .:
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>My site. <?=$pagetitle?></title>
</head>
<body>
<div id="page">
<? include $tpl ?>
</div>
</body>
</html>
и links.tpl.php
- фактический шаблон страницы:
<h2><?=$pagetitle?></h2>
<ul>
<? foreach($DATA as $row): ?>
<li><a href="<?=$row['link']?>" target="_blank"><?=$row['name']?></a></li>
<? endforeach ?>
<ul>