• ベストアンサー

インクルードした部分が表示されない

サイドバーなど、すべてのページに共有する部分を外部ファイルにし、下の例のようにインクルードさせています。 ↓(例)↓ <? php require("http://○○○/sample.txt"); ?> 拡張子は、htmlにしたかったので、PHPが利用できるように、.htaccessで設定しています。 これで普通のページはちゃんと表示され、問題はなかったのですが、 メールフォームやYomi-Search、Movable Typeの検索結果など、 CGI?(? % & などがつくURL)のページでは インクルードさせている部分が真っ白になってしまいます。 ソースを見ると、 <? php require("http://○○○/sample.txt") ? > のままになっていました。 ? % & などがつくURLでは、インクルードできないということでしょうか? 解決法をご存知の方は、どうかご教授お願いいたします。

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

  • ベストアンサー
  • wp_
  • ベストアンサー率54% (132/242)
回答No.3

include,requireというものを誤解されているようです。 includeは「コードを取得・解釈し、実行する」ためのものです。 外部のサーバの場合、許可されていない状態ですと「コードを取得」の時点でコケます。 普通は外部に許可させません。 画面が白いのはerrorが標準出力に出ない設定になっているからでしょう。 http://jp.php.net/manual/ja/function.include.php セキュリティの警告の部分にありますが、 http経由の出力を単純に取得したいならreadfileなどを使いましょう。

Q-0Epy
質問者

お礼

セキュリティのことなど、あまり考えず安易に利用していたので、 大事なご指摘をいただき、本当にありがとうございます。 私の場合、まさにwp_様がおっしゃるとおり、単純に取得したいだけなので、readfileに変更することにしました。 PHPに関して何もわかっていなかったので、1から勉強したいと思います。 参考にさせていただきました。ありがとうございます<(_ _*)>

その他の回答 (2)

  • shinope
  • ベストアンサー率36% (7/19)
回答No.2

検索結果で表示しないとなると、拡張子はもしかして、.plとか.cgiとかなるものでしょうか? perlで吐き出したものをさらにphpでインクルードするんですよね? .htaccessのなかに追記した.htmlの後に.cgi .plも入れてみては… あ、ちょっと危険かも?!

Q-0Epy
質問者

お礼

そういう方法もあるんですね。 危険かもということなので、.htaccessのことなど、もう少し勉強してから挑戦したいと思います。 ありがとうございました<(_ _*)>

  • inu2
  • ベストアンサー率33% (1229/3720)
回答No.1

根本的にinclude系の本来の用途が違うように思いますが・・・・ つまり、ドメインをまたいで取得したいってことでしょうか?

Q-0Epy
質問者

補足

早速のご回答ありがとうございます。 >根本的にinclude系の本来の用途が違うように思いますが・・・・ そうなんですね。(´□`;) 私自身PHPに関しては、まったくの無知なので、あるサイト様を参考にそのまま利用させてもらいました。 http://○○○/sample.txtは、htmlで書いています。 ↓(例)↓ <ul> <li>ショッピング</li> <li>オークション</li> </ul> 普通のページでは中身をよんでくれていたので、共通する部分に使うには、便利だと思っていたのですが・・・。 ブックマークはしてなかったので、どのサイト様かはわかりませんが、それ以上のことは書いてなかったように思います。 >つまり、ドメインをまたいで取得したいってことでしょうか? ・・・ドメインをまたぐとは、どういう意味でしょうか?何もわからなくて、すいません。 安易に、普通のページと同じようによんでくれたらと思っていたので・・・。

関連するQ&A