的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
除了在每个页面上都有连接片段之外,你建议吗
答案 0 :(得分:4)
我有什么建议?像Kohana这样的MVC(模型 - 视图 - 控制器)框架。如果您不想走这条路线,请将您的连接断开到自己的文件中:
<?php
# connect
require_once("connection.php");
# load page data array
require_once("page-data.php");
?>
...
<title><?php print $page["title"]; ?></title>
请注意我如何拥有$page
数据数组。这在以后调试时很有用,而不是有几个独立的变量。通过一系列页面数据,我可以快速查看为任何给定页面布置的所有信息:
print "<pre>";
print_r($page);
print "</pre>";
确定您的标题应该在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"] ;
答案 1 :(得分:0)
不确定“最佳”解决方案,但我们目前包含多个文件。我们有“utilities.php”文件连接到数据库并提供一些不错的功能。然后我们设置我们的页面标题,然后我们包括“top.php”这是布局部分。除了带有一点PHP的HTML用于显示目的之外它没有任何东西。看起来像这样:
include "utilities.php";
$pageTitle = "Welcome";
include "top.php";