別サーバからの記述持ち込み方法とは?

このQ&Aのポイント
  • AサーバのPHPプログラム内でBサーバにあるPHPプログラムを実行したい。しかし、Bサーバのプログラムを動かすのではなく、Aサーバに記述だけ持ち込んで実行したい。可能な方法はあるのか?
  • 通常、requireやincludeをすると「AAA=」と出力されるが、実行結果として「AAA=あああ」と出力させたい。記述だけ持ち込めればソースコードを盗むことができてしまうため、難しいかもしれない。
  • もしくは、Bサーバのファイルの拡張子を変えることで実現できる可能性がある。しかし、確実な方法ではないので他に良い方法があるかどうか知りたい。
回答を見る
  • ベストアンサー

別サーバの記述だけ持ってくる方法?

AとBのサーバがあります。 AサーバにあるPHPプログラム内で BサーバにあるPHPプログラムを実行したいです。 このとき、 Bサーバでプログラムを動かすわけではなく、 記述だけをAサーバのプログラムに持ってきて Aサーバで動いてほしいのですが、 そもそもこんなことは可能でしょうか? 例えば [AサーバのPHP]  $AAA = "あああ";  require("BサーバのPHPのURL"); [BサーバのPHP]  print "AAA=".$AAA; 通常、requireやincludeをすると  AAA= と出力されるところを  AAA=あああ と出力させたいです。 なにか良い方法ございましたらお助け願います。 もちろん、requireやincludeで記述だけ持ってこれたら、 ソースをパクリ放題になるので、できなさそうな気はします。 Bの方の拡張子を変えたらできる!とか、そんなのありますか?

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

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

  • ベストアンサー
  • shimix
  • ベストアンサー率54% (865/1590)
回答No.2

>Bの方の拡張子を変えたらできる!とか、そんなのありますか? 拡張子が.txtならhttpでアクセスしても、ソースがそのまま返りますからinclude出来ます。適当な拡張子にしてその拡張子のmimeタイプを(Bサーバの設定で)text/plainにしても同じです。phpから「includeさせたいソース」を返しても大丈夫なのでtext/htmlでも問題ないハズです(要はBサーバで「実行させない」ようにすればいいだけなので)。 さすがに特定のIPアドレス(Aサーバ)からのアクセスだけmimeタイプを変えるのは面倒かもしれませんが(汗

duowhite
質問者

お礼

おおっ! まさにこれです! 助かりました。 ありがとうございます。

その他の回答 (1)

  • yambejp
  • ベストアンサー率51% (3827/7415)
回答No.1

>ソースをパクリ放題になるので、できなさそうな気はします。 ソースを公開する気がないなら一般的には無理です ただしphpソースの暗号化・複合化する技術もあるようなので それを利用すればいけるかもしれません。 たとえばphp-screwとか (私は試していないので自己責任・自己解決の方向で) http://www.google.co.jp/search?q=php-screw

duowhite
質問者

お礼

情報ありがとうございます。 今回の場合、ソースの公開はありです。 もしも、includeやrequireでソースをパクれたら、 世のプログラマは大変なことになるなぁ…だから無理ですよね? というような意味で書きました。 伝わりにくくてすみません。

関連するQ&A

  • 他のサーバにあるphpをrequireしたい

    他のサーバにある変数を引っ張ってくる方法が分からず困っております。 (php.iniのallow_url_includeをonにすれば実行出来たのですが、  offのままで同じ結果になる方法をお教え頂きたく思います。) allow_url_includeをonにした場合には出来た方法↓ 【Aサーバ】にある「a.txt」(a.phpにすると実行出来ませんでした……) <?php $hogeA = 'テキストA'; ?> 【Bサーバ】にある「b.html」 <?php require_once ('http://www.A/a.txt'); echo $hogeA ; ?> b.htmlに「テキストA」を表させたいと考えています。 allow_url_includeを変更せずに出来る代替方法をお教え下さい。 a.phpだと実行出来なかった理由も分からないため、 よろしければこちらもお教え下さい。 よろしくお願い致します。

    • ベストアンサー
    • PHP
  • 別のドメインのファイルをrequire

    phpで別のドメイン下のファイルをrequireしようとしていますがうまくいきません。 サーバーの環境は【Windows Server 2008 + IIS6.0 + php5.2】で、 php.iniのallow_url_includeはonに設定済みです。 ファイルA http://xxx.com/aaa.php   <html>   <head>   </head>   <body>   <?php   require_once("http://localhost/test.inc");   echo $remember;   ?>   </body>   </html> ファイルB http://yyy.com/bbb.php   <?php   $remember=5577;   ?> 仮にファイルAに「require_once("http://yyy.com/bbb.php");」と書いて実行すると、空白のページが出力され、ページのソースは   <html>   <head>   </head>   <body> となっていました。 phpコードを実行するところで処理が中断されたようです。 空白ページのタイトルは「500-内部サーバーエラー」です。 同じサーバーの違うドメインで試しても、物理的に別のサーバーで試しても結果は同じでした。 ネットで調べた限りでは結構みんなすんなりとできたみたいなので、なおさら不思議で仕方がないです。 何が考えられるか、教えていただければと思います。

    • ベストアンサー
    • PHP
  • 301リダイレクトの記述方法に関して

    サイトリニューアル後の301リダイレクトに関してご質問させて頂きます。 旧サイト URL : http://www.hoge.co.jp/aaa サーバーのディレクトリ : www/aaa 新サイト(全ページssl対応) URL : https://www.hoge.co.jp/aaa/bbb サーバーのディレクトリ : ssl/aaa/bbb サーバー:ファーストサーバ ------------------------------------------------------------------------- 上記の状況で旧サイトのディレクトリwww/aaaより下のファイルにアクセスしてきたものを 全て新サイトのトップページ(https://www.hoge.co.jp/aaa/bbb/index.php)へ 「.htaccess」を使用してリダイレクトしたいのですが、どの様に記述すれば良いのか 分かりません。 調べて「.htaccess」を作成しサーバーへアップロードしてみてもインターネットエラー500に なってしまいます。 この様な場合の「.htaccess」の記述方法や設置場所をご教授頂きますようお願い申し上げます。

  • レンタルサーバでphp.iniの設定

    レンタルサーバー(heteml)を借りているのですが、次のコードがエラーになってしまいます。 =========コード=================== require_once("http://aaa.com/mysql2.php"); =============================== ========エラー文=================== Fatal error: Cannot instantiate non-existent class: mysql ~ =============================== 参考書に『ファイルはphp.iniの〔include_path〕で設定された場所に置く必要があります。』と書いてあり、私は何も設定していないので、 これがエラーの原因だと思うのですが・・ そこで、レンタルサーバの〔php.iniの設定〕というページへ飛んでみたのですが、ここでは〔include_path〕までは設定出来ないようです。 〔include_path〕の呼び出し先を”http://aaa.com(ファイルパス→/Web/aaa)”に設定したい場合はどうすれば良いのでしょうか? 他の方の質問を見ていると、”.htaccsess”が出てきますが、 どう記述してよいのかも良く解りません。 ご存知の方いらっしゃいましたら宜しくお願いします!

    • ベストアンサー
    • PHP
  • require Auth.php

    require 'Auth/Auth.php'; の動作について教えてください。 サンプルソース a.php に、 「require 'Auth/Auth.php';」と冒頭に記述してありました。 PEARだと思うのですが、結局この記述は、 a.phpに、 (1)Auth.phpの内容を取り込む? (2)Auth.phpの内容を継承する? どちらの解釈の方が正しいのでしょうか? 今までrequire だと、指定したphpの内容を取り込む((1)番だと)だと認識していました。 以下ソースのように動作してると思っています。Auth.phpも同じ動作と思っていいものなのでしょうか。 ・test.php <?php echo "start!!\n"; include("include.php"); echo "end!!\n"; ?> ・include.php <?php echo "include start!!\n" ?> ●実行結果 start!! include start!! end!!

    • ベストアンサー
    • PHP
  • PHP include_once

    include_onceで読み込んだファイルが そのままテキストとして出力されてしまいます。 以下のような感じです。 インクルードするファイル fail.inc test_val = array("aaa" => "aaa111", "bbb" => "bbb222", "ccc" => "ccc333"); ソース本体 src.php <?php include_once('./fail.inc'); 以下処理 exit(); ?> これをそのまま実行すると以下のように出力されます。 test_val = array("aaa" => "aaa111", "bbb" => "bbb222", "ccc" => "ccc333"); includeせずにそのまま走らせると正常に動きます。 httpd.confのaddtypeにincという拡張子は追加していませんが 他の同様のソースでは問題なく読み込めます。 require_onceとかも試しましたが同じようにfail.incの中身がそのままテキストとして 出力されてしまいます。 どうしたら正しく読み込めますでしょうか。 ご回答よろしくお願いしますm(_)m

    • ベストアンサー
    • PHP
  • includeすると?が入る

    win2000、PHP5.3.0にて、includeをすると?が入ってしまいます。 具体的には -- a.php -- <?PHP print "A"; include 'b.php'; print "B"; ?> -- b.php -- C <?PHP print "D"; ?> E -- 結果 -- A?C DE B ブラウザ上ではこの?が見えないのですが、ソース上ではあります。 この?を何とかしたいのですが、これは何かの設定ですか?仕様ですか?不具合ですか?

    • ベストアンサー
    • PHP
  • 別サーバのプログラムを起動

    Aサーバ(xxx.xxx.xxx.xxx)よりBサーバ(yyy.yyy.yyy.yyy)上のプログラムを起動したいと考えております。 PHPのプログラム上"exec"関数などを使用するのかな?と思うのですがどうも上手くいきません。 どなたかご教示下さい。 大まかな流れとしては、 1:Aサーバ上の/home/httpd/test.phpを実行 2:1のtest.phpのプログラム内でBサーバの/home/httpd/test/testb.phpを起動する。 3:処理終了 ※testb.phpはDBに現在日付をinsertする処理となります。 お手数ですが宜しくお願い致しますm(_ _)m

    • ベストアンサー
    • PHP
  • html内でphpが動かない

    PHP5.3.3、レンタルサーバー使用です。 よくあるパターンでhtml拡張子のファイルでphpを動かしたいのですが、 .htaccessに必要記述をしても、今回使用するサーバーではなぜか動きません。 .htaccess <Files ~ "^\.ht"> order allow,deny deny from all satisfy all </Files> AuthUserFile /~~~~~~/.htpasswd AuthGroupFile /dev/null AuthName "Please enter your ID and password" AuthType Basic require valid-user DirectoryIndex index.php index.html Header set X-UA-Compatible "IE=edge" AddHandler php5.3.3-script .html 最期の行は以下も試しました。 AddType application/x-httpd-php .php .html AddHandler application/x-httpd-php .php .html (php_flag allow_url_fopen on php_flag allow_url_include on 追加も) html内に記述しているのはincludeとechoのみで、.php拡張子の場合は動作するのは確認済です。(htmlに名前変更したとたんにソースにそのまま出る、ないしダウンロードになって動作しない) /php/base.php /file/a/a/a.html 構造としてはこんな感じで、base.phpをa.htmlへインクルードしています。 htaccess自体は設定できているので、サーバー側の設定でしょうか? 考えられる可能性があればご教授頂けると幸いです。

    • 締切済み
    • PHP
  • 別サーバへのmysql接続に関して

    諸事情によりPHPプログラムで別のサーバにあるmysqlへ接続しようと 試みていますが、うまくいきません。 それぞれのサーバに入っているPHP,apache,mysqlのバージョンは 下記の通りです。 【PHPを動かすサーバ(以降:サーバA)】  Redhat Linux ES 4.0  PHP Version 4.3.9  Apache 2.0.52  mysql(入っていません) 【mysqlが動いているサーバ(以降:サーバB)】  FreeBSD 4.7  PHP Version 4.3.10  Apache 1.3.37  mysql 4.1.11 プログラムは下記のものです。 if(!$conn = mysql_connect(サーバB:3306,ユーザー名,パスワード)){  die('MySQL接続失敗'); } if(!$sts = mysql_select_db(データベース名,$conn)){  die('テーブル選択失敗'); } サーバBで同一のプログラムを 起動した場合はもちろん問題なく繋がります。 サーバAでは「MySQL接続失敗」となってしまいます。 どのような設定を行えば、サーバAからサーバBのmysqlへ接続可能に なるのか、よろしくご教授の程、お願いいたします。

    • 締切済み
    • PHP

専門家に質問してみよう