HTML&;PHP-包含的页面被弄乱了<;a>;标签在代码中(IE9)
我知道,这真是个愚蠢的问题 因此,我有一个简单的index.php:HTML&;PHP-包含的页面被弄乱了<;a>;标签在代码中(IE9),php,html,hyperlink,include,internet-explorer-9,Php,Html,Hyperlink,Include,Internet Explorer 9,我知道,这真是个愚蠢的问题 因此,我有一个简单的index.php: <html> ... <div id="div_page"> <?php if( !empty($_GET["page"]) ) { if( $_GET["page"] == "1" ) { include("./page/1.php"); } else { if( $_GET["page"] == "2" ) {
<html>
...
<div id="div_page">
<?php
if( !empty($_GET["page"]) ) {
if( $_GET["page"] == "1" ) {
include("./page/1.php");
} else { if( $_GET["page"] == "2" ) {
include("./page/2.php");
} else { if( $_GET["page"] == "3" ) {
if( !empty($_GET["site"]) ) {
if( $_GET["site"] == "1" ) {
include("./page/3.1.php");
} else { if( $_GET["site"] == "2" ) {
include("./page/3.2.php");
}}
} else {
include("./page/3.0.php"); // problem
}
} else { if( $_GET["page"] == "4" ) {
include("./page/4.php");
} else { if( $_GET["page"] == "5" ) {
include("./page/5.php");
} else { if( $_GET["page"] == "6" ) {
include("./page/6.php");
}}}}}}
include("footer.php");
} else {
header("Location: ./index.php?page=1");
}
?>
</div>
...
<html>
一切正常,直到我在任何页面(1.php,3.0.php…a.s.o.)中添加链接标记[a]
当我这样做时,IE9中的页面显示完全混乱:/
截图->
为什么会这样?
任何已知的问题/解决方案
thx 4任何帮助
g、 r
编辑:
3.0.php的代码如下:
<h1>Page 3</h1>
<p>Für Arbeitnehmer: <a href="./index.php?page=3&site=1">Site 1</a></p>
<p>Für Arbeitgeber: <a href="./index.php?page=3&site=1">Site 2</a></p>
<script type="text/javascript">
var page = 3;
</script>
第3页
Für Arbeitnehmer:
Für Arbeigeber:
var-page=3;
在我看来,您似乎没有正确关闭您的
标记,而且IE9在呈现页面时遇到了问题,而FF和chrome为您关闭标记如果这对您原来的问题没有帮助,很抱歉,但您可以稍微改进一下逻辑和代码可读性。这就是使用比原始帖子更多的行的情况。看看评论
<?php
if( !empty($_GET["page"]) ) {
if( $_GET["page"] == "1" ) {
include("./page/1.php");
}
else {
if( $_GET["page"] == "2" ) {
include("./page/2.php");
}
else {
//opening if, closing much later
if( $_GET["page"] == "3" ) {
//opening if, closing much later
if( !empty($_GET["site"]) ) {
if( $_GET["site"] == "1" ) {
include("./page/3.1.php");
}
else {
if( $_GET["site"] == "2" ) {
include("./page/3.2.php");
}
}
}
else {
include("./page/3.0.php"); // problem
}
}
//why not use elseif or plain if?
else {
if( $_GET["page"] == "4" ) {
include("./page/4.php");
}
//why not use elseif or plain if?
else {
if( $_GET["page"] == "5" ) {
include("./page/5.php");
}
else {
if( $_GET["page"] == "6" ) {
include("./page/6.php");
}
}
}}}}//two ending ifs and two elses?
include("footer.php");
}
else {
header("Location: ./index.php?page=1");
}
?>
当您可以使用:
if( !empty($_GET["page"]) && $_GET["page"] == "1") {
如果一个开口<代码>比一个开口好
编辑:既然投了反对票,我只会让事情变得更好或更糟。可能有助于提高可读性。我想我们都有自己的读写代码的方法
这是我一小时前想到的。如果下面的代码有效,为什么要检查每个可能的数字?(还没有测试过,所以我不知道。)
是不是只有“3.0.php”引起了问题?请发布引起问题的包含文件的代码——是该代码引起了问题,而不是您的“包含”代码。@Pierre Olivier Bourgeous:不管我包括什么,错误发生在4 all.php。这不是您问题的答案,但我会使用一个开关,而不是if else,这将有助于使代码更具可读性。+1用于切换,是的,请发布php页面的内容。我同意:包含的文件没有问题,因此它可能位于代码的
…
部分——几乎可以肯定是一个未关闭的元素。在没有p
的情况下尝试它也是一样的。如果你看图片,你可以看到文本流是正确的,直到“站点1”,在“Für arbeitnehmer:”(sry 4德语文本)之后的所有内容都被再次推到顶部,并且不再插入文本流…不幸的是没有未关闭的标签。。。我将把完整的代码上传到一个zip文件中4那些想调试enerything的人这不是答案,而且已经提到了switch
。。。正如我所说的,我已经用很多if设置了代码,因为我以后需要在里面放更多的代码。。。最后一个,我没有把这两个条件放在另一个条件中,因为我必须为每一个“if page=1/2/3/4…”以及“if!empty”。。。这将是6次“如果!空”…@Ace回答得很好,在看了一段时间后,我现在更好地理解了你的写作。一开始,剧本结尾的括号里有很多结束语,这让我很失望,但它们确实排列得很好。是否可以减少代码并使用GET
变量作为变量?比如:$myGet=$\u GET['whatever']
;然后您可以使用:if(!empty($\u GET['page'])&&$\u GET['page']==$myGet){header(“Location:./index.php?page=$myGet”)}
。如果这样做有效,将减少大量代码。如果没有,请再次道歉。@Andrew是的,我知道已经提到了开关。这就是为什么我只简单地提到它。我已经在不同的线程中看到许多类似的答案重复相同的事情,我认为没有理由不重复一个建议改进的答案。我确实同意我的回答不是很有帮助,但我不会说这根本不是一个答案。很抱歉给您带来不便。我只是想提供一种方法来缩短代码,减少打开if
语句的次数。好吧,我想我们都太专注于php了。。。我已经把完整的代码放在一个zip文件中。acid.chdustar.com/page.zip我不认为这是一个php问题,甚至不是一个未关闭的tad或其他东西,我认为我们应该更多地关注CSS。。。只需在zip中查找。/main.css整个页面由于其布局有点复杂。
if( !empty($_GET["page"]) ) {
if( $_GET["page"] == "1" ) {
if( !empty($_GET["page"]) && $_GET["page"] == "1") {
$getPage = $_GET['page'];
$getSite = $_GET['site'];
if (isset($getPage) && isset($getSite)){
include("./page/$getPage.$getSite.php");
}
elseif (isset($getPage) && !isset($getSite)){
include("./page/$getPage.php");
}
else {
header("Location: ./index.php?page=1");
}