dポイントプレゼントキャンペーン実施中!

サイドバーなど、すべてのページに共有する部分を外部ファイルにし、下の例のようにインクルードさせています。
↓(例)↓
<?
php require("http://○○○/sample.txt");
?>
拡張子は、htmlにしたかったので、PHPが利用できるように、.htaccessで設定しています。

これで普通のページはちゃんと表示され、問題はなかったのですが、
メールフォームやYomi-Search、Movable Typeの検索結果など、
CGI?(? % & などがつくURL)のページでは
インクルードさせている部分が真っ白になってしまいます。

ソースを見ると、
<?
php require("http://○○○/sample.txt")
?
>
のままになっていました。

? % & などがつくURLでは、インクルードできないということでしょうか?

解決法をご存知の方は、どうかご教授お願いいたします。

A 回答 (3件)

include,requireというものを誤解されているようです。



includeは「コードを取得・解釈し、実行する」ためのものです。
外部のサーバの場合、許可されていない状態ですと「コードを取得」の時点でコケます。
普通は外部に許可させません。
画面が白いのはerrorが標準出力に出ない設定になっているからでしょう。

http://jp.php.net/manual/ja/function.include.php
セキュリティの警告の部分にありますが、
http経由の出力を単純に取得したいならreadfileなどを使いましょう。
    • good
    • 0
この回答へのお礼

セキュリティのことなど、あまり考えず安易に利用していたので、
大事なご指摘をいただき、本当にありがとうございます。

私の場合、まさにwp_様がおっしゃるとおり、単純に取得したいだけなので、readfileに変更することにしました。

PHPに関して何もわかっていなかったので、1から勉強したいと思います。

参考にさせていただきました。ありがとうございます<(_ _*)>

お礼日時:2007/11/06 02:00

検索結果で表示しないとなると、拡張子はもしかして、.plとか.cgiとかなるものでしょうか?


perlで吐き出したものをさらにphpでインクルードするんですよね?

.htaccessのなかに追記した.htmlの後に.cgi .plも入れてみては…
あ、ちょっと危険かも?!
    • good
    • 0
この回答へのお礼

そういう方法もあるんですね。
危険かもということなので、.htaccessのことなど、もう少し勉強してから挑戦したいと思います。

ありがとうございました<(_ _*)>

お礼日時:2007/11/06 01:46

根本的にinclude系の本来の用途が違うように思いますが・・・・



つまり、ドメインをまたいで取得したいってことでしょうか?

この回答への補足

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

>根本的にinclude系の本来の用途が違うように思いますが・・・・
そうなんですね。(´□`;)
私自身PHPに関しては、まったくの無知なので、あるサイト様を参考にそのまま利用させてもらいました。

http://○○○/sample.txtは、htmlで書いています。
↓(例)↓
<ul>
<li>ショッピング</li>
<li>オークション</li>
</ul>

普通のページでは中身をよんでくれていたので、共通する部分に使うには、便利だと思っていたのですが・・・。
ブックマークはしてなかったので、どのサイト様かはわかりませんが、それ以上のことは書いてなかったように思います。

>つまり、ドメインをまたいで取得したいってことでしょうか?
・・・ドメインをまたぐとは、どういう意味でしょうか?何もわからなくて、すいません。
安易に、普通のページと同じようによんでくれたらと思っていたので・・・。

補足日時:2007/11/05 03:58
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!