0

我试图在我的 index.php 页面上添加这段代码,这样我所要做的就是编写只有 html 的短文件,作为网站的单独页面。例如:

我不想让索引、关于和联系页面都具有相同的模板代码,我希望索引页面具有网站模板,并在主页导航上有一个指向关于和联系的链接,例如

        <a href="index.php?id=about.html">About</a> 
        <a href="index.php?id=contact.html">Contact</a>

连同一个 php 包含代码。诀窍是我还使用 php 新闻脚本在主页上显示更新和内容,因此链接的包含必须是我猜测的 else 语句?

这是我到目前为止所得到的,但它的返回错误说

'id' is an undefined index.

我不确定那是什么意思。

        <?php 
        $id = $_GET['id']; 
        if 
        ( isset($_GET['id']))
        { $number=5; include("news/newsfilename.php"); }
        else 
        { include "$id"; } 
        ?>
4

2 回答 2

1

首先,关于使用查询字符串修改主页的免责声明:这对 SEO 一点都不好。您最好使用一种 .htaccess 魔法来创建别名子目录,这些子目录在幕后传递给您的查询结构。例如/about,可能是index.php?id=about.html. 鉴于您没有问这个问题,我会在我的答案中保留操作方法。

$id = $_GET['id'];如果未设置 id 查询参数,也不会为您工作,虽然您正在检查它,但您也$id事先设置了变量。

试试这样的速记:

<?php 
    $id = isset($_GET['id']) ? $_GET['id'] : 0; //This is equivalent to a long-form if/else -- if $_GET['id'] is set, get the value, otherwise return 0/false
    if ($id)
    { 
        $number=5; include("news/newsfilename.php"); 
    }
    else 
    { 
        include($id.".html"); //also suggesting you strip out .html from your HTML and add it directly to the php.
    } 
?>

然后你的html:

<a href="index.php?id=about">About</a> 
<a href="index.php?id=contact">Contact</a>
于 2013-10-26T05:49:58.830 回答
0

我认为这可能是您的第一行代码的结果。由于您在检查是否已设置之前尝试获取“id”,因此如果未设置,您将收到错误消息。

于 2013-10-26T05:46:57.663 回答