Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/271.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/85.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
HTML&;PHP-包含的页面被弄乱了<;a>;标签在代码中(IE9)_Php_Html_Hyperlink_Include_Internet Explorer 9 - Fatal编程技术网

HTML&;PHP-包含的页面被弄乱了<;a>;标签在代码中(IE9)

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" ) {

我知道,这真是个愚蠢的问题

因此,我有一个简单的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" ) {
            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");
      }