こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

解決済みの質問

テンプレート化したphpのmenu.php内で<a href="#">の戻り値が重複してしまう。

PHPの勉強の為、簡易テンプレートを作成しているのですが、config.php内で指定したURLをmenu.phpで実行させたところ戻り値が重複して困っています。

※wordpessなどで見かけるURLテンプレートタグによって、<a href="この部分">のhttp~のURLを書かなくてもいいようにしたいです。

【各ファイル】
●index.php
●config.php

[templatesフォルダ]
footer.php
header.php
●menu.php
style.css

[htmlフォルダ]
●index.php

トップのindex.php内では、<?php require_once('config.php'); ?>にてconfig.phpを読み込んでいます。
メニューはパーツ分けしたので、<?php include "templates/menu.php"; ?>にて読み込んでいます。

config.phpでは、URLの戻り値として、
<?php
define(SITE_URL, "http://www.yahoo.co.jp");
?>
を指定しています。

上記をtempleatesフォルダ内のmenu.phpで実行させました。
<ul>
<li><a href="<?php echo SITE_URL; ?>">HOME</a></li>
<li><a href="<?php echo SITE_URL; ?>/html/index.php">テスト</a></li>
</ul>

これで、絶対パスを書かなくてもURLが作れると思ったのですが、実際の戻り値が、
http://www.yahoo.co.jphttp://www.yahoo.co.jp
と重複してしまい、ページ移動ができません。

これは、どうしてなのでしょうか?
どなたか教えていただけないでしょうか。

投稿日時 - 2010-03-21 02:18:35

QNo.5767600

困ってます

質問者が選んだベストアンサー

define(SITE_URL, "http://www.yahoo.co.jp");
上記の部分を
define(SITE_URL, "http://www.sample.co.jp");

と書き変えても、同じように重複しますか?

具体的には、SITE_URLを定数宣言する前に、
<li><a href="http://www.yahoo.co.jp">HOME</a></li>
と書いていたところに、定数宣言後
<li><a href="<?php echo SITE_URL; ?>http://www.yahoo.co.jp">HOME</a></li>
と、編集ミスをしてしまっている事を一番疑っています。

そのうえで、動作確認しているファイルとエディタで開いて確認しているファイルとは別のファイルという、二重のポカミスを考えています。

上記でやはり重なった場合、
表示されたHTML画面のソースを開くをして、HTML上での確認をお奨めします。

それでもダメな場合、SITE_URLで全ファイルを全文検索して、どこかで値をいじっていないか(再宣言)の確認してみてください。

あとは、ブラウザのキャッシュの削除も試してください。

投稿日時 - 2010-03-21 13:28:12

お礼

ご回答ありがとうございます。

>> あとは、ブラウザのキャッシュの削除も試してください。

キャッシュを削除でいけました。
ソース自体は変更できていたので、キャッシュは関係ないと思ってましたが違うんですね。

ありがとうございました。

投稿日時 - 2010-03-21 14:31:17

このQ&Aは役に立ちましたか?

0人が「このQ&Aが役に立った」と投票しています

回答(1)

あなたにオススメの質問