Динамические заголовки лучший способ? - PullRequest
1 голос
/ 08 января 2010

header.php

<?php

$conn = mysql_connect('localhost', '-', '-');
@mysql_select_db('accmaker', $conn) or die("Unable to select database");

?>

<html>
<head>
<title>Mysite.com - <?php isset($pageTitle) ? $pageTitle : 'Home'; ?></title>
</head>
<body>

profile.php

require 'header.php';

$q = mysql_query("SELECT * FROM users WHERE username = '$username'");

$r = mysql_fetch_assoc($q);

$pageTitle = "Profile of $r[username]";

Я думаю, вы понимаете, чего я хочу

Я не могу включить header.php после запроса, потому что я не буду подключен к mysql

Что вы предлагаете, кроме наличия фрагмента соединения на каждой странице

Ответы [ 2 ]

4 голосов
/ 08 января 2010

Что я предлагаю? Среда MVC (Model-View-Controller), такая как Kohana . Если вы не хотите идти по этому пути, разорвите ваше соединение на отдельный файл:

<?php

  # connect
  require_once("connection.php");

  # load page data array
  require_once("page-data.php");

?>
...
<title><?php print $page["title"]; ?></title>

Обратите внимание, что у меня есть $page массив данных. Это будет полезно при отладке позже, вместо нескольких независимых переменных. С массивом данных страницы я могу быстро увидеть всю информацию, размещенную для любой данной страницы:

<code>print "<pre>";
print_r($page);
print "
";

Определение вашего заголовка должно быть сделано в page-data.php, а не на вашей странице:

$config["site_name"]   = "Bob's Shoe Mart";
$config["admin_email"] = "bob@shoemart.com";

/* query to get $row['title'] */

$page["title"] = (!empty($row["title"])) ? $row["title"] : $config["site_name"] ;
0 голосов
/ 08 января 2010

Не уверен в «лучшем» решении, но в настоящее время мы включаем несколько файлов. У нас есть файл «utilities.php», который подключается к базе данных и предоставляет несколько полезных функций. Затем мы устанавливаем заголовки наших страниц и затем включаем «top.php», который является частью макета. В нем нет ничего, кроме HTML с небольшим количеством PHP для отображения. Выглядит так:

include "utilities.php";
$pageTitle = "Welcome";

include "top.php";
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...