• ベストアンサー

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

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

  • PHP
  • 回答数3
  • ありがとう数2

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

  • ベストアンサー
  • 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

  • Yomi-SearchのURL表示で拡張子を表示させない方法

    Yomi-Searchを設置したのですが、URL表示が http://www.×××/yomi-search/yomi.cgi と なってしまいます。 yomi-search/yomi.cgi もしくは、 yomi.cgiを 表示させないようにするには、どのようにすれば いいでしょうか?

  • yomi-searchについて2

    CGIの設置が無事終わり、後はURLを指定してアクセスの段階ですが http://www.○○○/yomi-search/yomi.cgiの○○○の部分に自分のURLをはめ込んでアクセスする分けですが 404エラー「ページが見つかりません」になります。 初心者なので原因がわかりません教えてください。 アクセスURLはhttp://www.***.fc2web.com/yomi-search/yomi.cgiとhttp://www.***.fc2web.com/cgi-bin/yomi-search/yomi.cgiの2つでアクセスしてみましたがやはり404エラー「ページが」見つかりませんになります。 原因を教えてください。お願いします。

  • yomi-searchについて3

    CGIの設置が無事終わり、後はURLを指定してアクセスの段階ですが http://www.○○○/yomi-search/yomi.cgiの○○○の部分に自分のURLをはめ込んでアクセスする分けですが 404エラー「ページが見つかりません」になります。 初心者なので原因がわかりません教えてください。 アクセスURLはhttp://www.***.fc2.com/yomi-search/yomi.cgiとhttp://www.***.fc2.com/cgi-bin/yomi-search/yomi.cgiの2つでアクセスしてみましたがやはり404エラー「ページが」見つかりませんになります。 原因を教えてください。お願いします。 CGIを許可しているHPソースに引越しましたが無理でした。他に特別な設定方法などがあるのでしょうか? よろしくお願いします。

  • php_value include_pathを無効

    php_value include_pathを、あるディレクトリ以下では、無効にしたいのですが、 どうすればよいでしょうか? ■前提 ・サイト全体は、「.htaccess」に「php_value include_path」を書いて制御 ■やりたいこと ・ある特定ディレクトリ「hoge」以下では、「php_value include_path」ではなく、 PHPに直接書いた「require_once './★★/●●';」を利用したい ・つまり、設定ファイル「.htaccess」に記述した中のある一部分(特定ディレクトリ以下)だけは、「PHPソースに記述」したincludeパスを使いたい ■試してみてダメだってこと ・「hoge」に「.htaccess」を設置し、空の「php_value include_path=""」と書いてみたけど、うまくいきませんでした

    • ベストアンサー
    • PHP
  • include,require について

    include,require元を知る方法はないのでしょうか? 例としては下記の状況でinclude.phpがどのscriptに呼び出されたかが知りたいのです。 main.phpの内容 <? include 'include.php'; ?> include.phpの内容 <? 処理・・・ ?>

    • 締切済み
    • PHP
  • セッション部分のインクルード

    お世話になっております。 PHPを使ったHTMLページを作成しているのですが、 セッション部分がうまく動きません。 index.phpページの一番上部に、 <?php include "http://www.○○○.com/lib/include/base.php"; ?> というように記述し、 base.phpには、 <?php session_start(); if(!isset($_SESSION["ses_ref"])){ $_SESSION["ses_ref"]= $_SERVER["HTTP_REFERER"]; } と記述しております。 セッション部分をインクルードせずに直接index.phpに記述した場合は、きちんと動くのですが、インクルードすると動きません。 (変数を取得できません。) セッション部分をインクルードすることはできないのでしょうか。 ご教授くださると非常にありがたいです。 よろしくお願いいたします。

    • 締切済み
    • PHP
  • Yomi-Search HTMLの書き換えについて

    初めまして。 Yomi-Searchの各HTMLページ(テンプレート)の書き換えについてお聞きしたいことがあります。 Yomi-Searchではレイアウトにテーブルが使われていますが、これをやめてもう少しきれいなHTML構成に変えたいと思っています。 その際、書き換えるのは各HTMLページだけで良いのでしょうか? それとも、CGIの内容も変更しなくてはならないのでしょうか? また、話題がずれるかもしれませんが、CGIよりもPHPの方が設置しやすいのでしょうか。 CGI版Yomi-Searchにするか、PHP版Yomi-Searchするかでも迷っています。 とりとめのない質問となりましたが、アドバイスをよろしくお願いいたします。

    • ベストアンサー
    • CGI
  • PHPのインクルードの方法(初心者です)

    サイトの管理を一括で行いたいと思い、 いろいろ調べたところPHPのインクルードという方法を知りました。 いろいろなサイトを見て、その通りに実行してみたのですが、 500エラーになってしまいます(泣) やってみたのは以下の通りです。 1、「.html」なので「.htaccess」というファイルに AddType application/x-httpd-php .htm .html と記述してアップロード。 2、インクルードしたい部分をメモ帳に貼り付け、「●●.txt」で保存しアップロード。 3、メモ帳にコピペした部分を削除して、 <?php include_once("http://●●.com/▲▲.txt"); ?> と記述。 以上です。 詳しくわからないのですが、何階層にもなりそうなので 相対パスなら、いちいち指定するのに手間が掛かるので 絶対パスというので指定したいのですが、 「PERLの絶対パス」とか意味がわかりません(汗) 3のようにURLで指定するのは間違っているのでしょうか? いろいろいじってみたのですが、 一体どこがおかしいのかわかりません。 どなたかご教授お願いいたします。

  • include_path の設定について

    趣味でpearのNet_UserAgent_Mobileライブラリを使用して携帯サイトを作成しておりますが、その各ライブラリファイルで require_once 'Net/UserAgent/Mobile/*****.php'; のようなコードがあるのでそれを変更したくないのと色々な場所からライブラリを使用するのでその都度相対パスを設定したくないので.htaccessでパスの設定をしたいのですが include_pathを設定するとPEAR.phpのパスが設定されてしまいます。その為 require_once 'PEAR.php'; のところでエラーが出ます。 include_pathはあくまでPEAR.phpのパスの設定しか出来ないのでしょうか。 【ライブラリファイルのおいてある場所】 /home/*****/public_html/mobile/Net/UserAgent/Mobile/ 【.htaccess設定】 php_value include_path ".:/home/*****/public_html/mobile/

    • ベストアンサー
    • PHP
  • include,requireで外部URLの呼び込み

    include,requireのどちらでもいいのですが、別ドメイン或いは同ドメイン内における違う階層のファイルなど(例えば外部のhttp://www.ooxx.sample)を呼び込む際に、呼び込み先のリンクや画像パスが相対バスではうまくいきません。呼び込み先のリンク、画像パスを絶対URLにすれば問題ないと思いますが、作業が困難になるので避けたいです。 PHPでinclude,requireの使い方は向かないのでしょうか?或いは、他の方法で回避できる方法はないのでしょうか? (SSIやHTMLでインラインフレームみたいなことは使わない)

    • 締切済み
    • PHP

専門家に質問してみよう