我在整合到设计之前完成了我的编程,我不得不承认我完全陷入了整个局面。这是我的结构:
普通访客帐户文件(在系统文件文件夹中)。
整个目录位于public_html下,该目录包含我的站点文件。我试过包括,这似乎是一个很好的干净方式。但我遇到的问题是我需要在登录时修改标题。我只是想知道是否有人有任何想法。我尝试了iframe,但我觉得它非常不洁净。
谢谢!
答案 0 :(得分:0)
事实上,在开始任何输出之前,你需要检查你想要检查的内容。
所以:
<?php
//do your stuff, includes and more
if(isset($_GET['login']))
{
//do login stuff
if($login === false)
{
header("Location: index.php");
}
}
//start output
?>
<html>
etc.
所以在你的情况下,你必须重新整理一下。
不建议以下内容: 如果它花费了很多努力......你可以使用ob_start();在脚本的开头并缓冲任何输出。
但是,最后一个解决方案真的很难看,因为它隐藏了真正的问题。
答案 1 :(得分:0)
我只是把我所有的PHP代码都包起来并将我的页眉和页脚文件包裹起来。
修复我使用的标题问题:
ob_start();
和
ob_flush();
感谢大家的投入。
答案 2 :(得分:-1)
当我需要每个页面更改标题/导航时,我首先包括我的会话授权包含,然后是标题包含 - 但是,标题包含不包含结束“head”标记。这样,在每个页面中,我都可以继续“头部”部分。这使得可以根据单个页面覆盖对标题/导航部分的任何更改。这当然也适用于样式,因为最后定义的样式具有更高优先级的级联层次结构。
示例:
-- Authorization file -- authorization.php
<?php session_start(); ... ?>
------------ end of authorization file
-- Header file -- header.html
<!-- Header / Navigation Include -->
<head>
<style> ... </style>
<script> ... </script>
<!-- no /head closing tag here -->
------------ end of header file
-- Individual Page --
<style> ... highest precedence styles ... </style>
<script> ... page specific scripts ... </script>
</head> <!-- finally closing the head tag -->
<?php
include "authorization.php"
include "header.html" //common header content only
....
?>
------------ end of page