0

このコードを index.php ページに配置しようとしているので、サイトの個別のページとして機能するために、html だけを含む短いファイルを作成するだけで済みます。例えば:

インデックス、概要、および連絡先ページのすべてにテンプレートの同じコードを含める代わりに、インデックス ページだけに Web サイト テンプレートを配置し、メイン ページ ナビゲーションに about および contact へのリンクを配置したいと考えています。

        <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 に答える