• 締切済み

flashから別サーバーにあるCGIを起動

別サーバにあるCGIを起動する方法で行き詰っております。 どなたかアドバイスをお願いいたします。 ■現状 A社のサーバーにHTML(SWFも含む)を入れて、B社のサーバー(UNIX,Perlバージョンは最新)にあるCGIを起動させたいと考えています。(B社の中で同サーバーにHTMLとCGIを入れてテストした場合は問題なく動いています。) しかし、A社のサーバーにHTMLをアップしてもらうと、HTMLやSWFは問題なく閲覧できるのですが、B社のCGIが起動しません。これを解決したいのですが、なんとかいい方法はないでしょうか。 A社のアドレスはhttp://www.xxx.com/とします。 B社のCGIが入っているアドレスはhttp://www.zzz.com/cgi-bin/とします。 以下を試していますが、A社のサーバーでは動きませんでした。 B社サーバー内にc_01.swfというのを作り(http://www.zzz.com/c_01.swf)、1フレーム目にCGIを起動するコードを書きました。(以下) this.createEmptyMovieClip("page_mc1", 1); loadVariables("http://www.zzz.com/cgi-bin/c_01.cgi", page_mc1, "GET"); c_01.swfをA社のHTMLにあるSWFから _root.miniswf.loadMovie("http://www.zzz.com/c_01.swf"); というように読み込んでみましたが動きません。また、これは適当にやっているので見当違いかもしれませんが、A社のindex.htmlに <!--ムービーで使用されている URL--> <a href="http://www.zzz.com/"></a> <a href="http://www.zzz.com/cgi-bin/"></a> というタグを入れてみましたが動きませんでした。 B社で借りているレンタルサーバー(http://www.eee.com)にHTMLを入れてみると、http://www.zzz.com/cgi-bin/c_01.cgiは動くので不思議です。どなたか助けて下さい。 ※制作しているflashのバージョンはversion=8,0,0,0です。

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

みんなの回答

noname#35109
noname#35109
回答No.2

おそらくクロスドメインの問題だと思います。 簡単に言うと, 自分が管理していないドメインのデータを, そのドメイン下 以外の Flash からは無許可でロードできないということです↓。 Macromedia - デベロッパーセンター Macromedia Flash Player 7 におけるセキュリティの変更について http://www.adobe.com/jp/devnet/flash/articles/fplayer_security.html  ~引用~ > 外部データを提供するサーバーには、 > ドメイン間を越えたローディングを許可するための > XML ファイル「ポリシーファイル」を設置する必要があります。 上記, XML ファイル「ポリシーファイル」を設置に関しましては, http://www.adobe.com/jp/devnet/flash/articles/fplayer_security_03.html このページの中ほどから始まる 「新しいセキュリティ制約に関する既存ムービーの修正方法」 辺りから詳しく書かれています。

erimkb
質問者

お礼

回答ありがとうございます。 http://www.zzz.com/cgi-bin/crossdomain.xml を作成し、http://www.zzz.com/c_01.swfの一フレーム目に System.security.allowDomain( "http://www.xxx.com/" ); や System.security.allowInsecureDomain( "http://www.xxx.com/" ); など入れて試行錯誤してみましたが、やはり動いてくれません。。 入れ方などが違っているのでしょうか。

  • kancil
  • ベストアンサー率27% (26/95)
回答No.1

ひょっとしたらFLASHは関係ないかもしれないですよ。 経験上、似たような現象にあったことがありましたが、そのときの原因は、B社のサーバーの設定で、外部のサーバーからのCGIの呼び出しは無効にするような設定がされている、というものでした。 B社のサーバー設定の仕様をよく調べてみたらよいかもしれません。

erimkb
質問者

お礼

早速の回答ありがとうございます。助かります。 そうだと思ったのですが、 B社で別の会社のレンタルサーバーを借りてバーチャルドメインを振り分けてもらって(http://www.eee.com)HTMLを入れるとhttp://www.zzz.com/cgi-bin/c_01.cgiは動くのと、ちょっと不細工ですが、http://www.xxx.com/index.htmlのテキストの下に以下のタグを貼り付けてもhttp://www.zzz.com/cgi-bin/c_01.cgiは動くのです。HTMLにわけてタグとして以下のように入れると問題なく動くのですが、どうしても同じHTML内にあるFlashの命令でCGIを起動する必要があるのです(涙) <script language="JavaScript" type="text/JavaScript"> <!-- document.write("<img src=http://www.zzz.com/cgi-bin/c_01.cgi&?"); document.write("referrer="+document.referrer+"&"); document.write("width="+screen.width+"&"); document.write("height="+screen.height+"&"); document.write("color="+screen.colorDepth+"'>"); // --> </script> 関係ないかもしれませんが、http://www.xxx.com/index.htmlのフラッシュタグの入れ方も載せておきます。(一部略) <object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553------(略)---" codebase="http://fpdownload.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=8,0,0,0" width="100%" height="100%" id="○○○" align="middle"> <param name="allowScriptAccess" value="sameDomain" />

関連するQ&A

  • 別サーバーのcgiへバイナリデータを送る方法

    サーバーAに、バイナリデータがあります。 これをサーバーBのcgiへデータを渡したいのですが、方法を教えてください。 HTMLで書くと、以下のようにc:\data.binを<form>でcgiに送信するようなイメージです。しかし、<input file>タグではセキュリティーのためvalueでファイルを指定することができません。 ここのc:\data.binは、ファイル名が変動するため、人間に手で選択させることはさせたくないです。 <form action="http://www.サーバーB.jp/Server_B.cgi" enctype="multipart/form-data" method="post"> <input type="file" value="c:\data.bin"> <input type="submit" value="サーバーAに送信"> </form> これを、cgi(Perl)を使用して、同じようなものを書くことはできますでしょうか? httpヘッダを書いて、その後ろにデータを送信して、、といった感じでできるような気がするのですが、 httpヘッダの書き方が分かりません。 受け側のサーバーBのcgiでは、CGI_Lite.pmを使用してバイナリデータを受信します。 通常、バイナリのデータ送信はftpを使用するのだと思いますが、相手側がftpに対応していません。 よろしくお願いします。

    • ベストアンサー
    • CGI
  • CGIから別サーバーのCGIの呼び出し

    以下の二つのサーバーでCGIを動作させようと考えています。  サーバーA:ユーザーからアクセスできる。  サーバーB:サーバーAからアクセスでき、ユーザーからはアクセスできない。 この環境で (1)サーバーAでリクエストを受け、簡単な処理をする。 (2)サーバーA上のCGIからサーバーB上のCGIを呼び出す。 (3)サーバーB上で処理(etc. メールの送信)を行い、処理結果をサーバーAのCGIに返す。 (4)サーバーA上で簡単な処理を行い、結果をユーザーに表示する というような処理を考えています。 perlでは、このような処理を実装することは可能でしょうか? サーバーAからサーバーBにあるスクリプトファイルを読み込んで、サーバーAで実行するということはできそうなのですが、サーバーB上のCGIはサーバーBで実行するというようなことができるのかがわかりません。 初心者的な質問で申し訳ありませんが、よろしくお願いします。

    • ベストアンサー
    • CGI
  • CGIを一つのサーバーに置くには・・・

    こんにちは。 CGI初心者ですよろしくお願いします。 タイトル通りなんですが、サーバにCGIを置きたいのです。 the roomさんのCGI↓ ttp://dream.lib.net/room/ ttp://dream.lib.net/room/cgi/e_ranklink.html 例えば ttp://xxxxx.com/index.html で 二つのランキングサイトを作るには、 ttp://xxxxx.com/rank1/cgi-bin/ranklink/ranklink.cgi? ttp://xxxxx.com/rank2/cgi-bin/ranklink/ranklink.cgi? ディレクトリを分けてやればいいのでしょうか? あと ・他のサーバからのCGIへのアクセスが禁止されている(freeweb等) ・ファイル生成が出来るパーミッション設定が出来ない(基本的には 777。755等でも行ける場合あり) 以上の環境の方は、Ranking Link の設置・運営は不可能です。 また、サーバによってはランキングCGIの設置が禁止されている場合もあります。 よく確認してから設置を行ってください。 では、CGIの設定を行います。 とマニュアルで書いてありました。 ttp://www.asj.ne.jp/faq/index.html ↑のサーバーを使いたいのですが大丈夫でしょうか? もしだめだった場合いい有料サーバー教えてください。

    • 締切済み
    • CGI
  • Apache/2.2.13 WebサーバーでCGIが動きません

    ご迷惑をおかけして、すいません。 何方か助けてください。お願いいたします。 OS Redhat Linux Fedora 11 バージョン 1.430 Webサーバー Apache バージョン 2.2.13 perl perl 5.10.0-73.fc11 httpd.confの記述 ------------------------- AddHandler cgi-script .cgi .pl ScriptAlias /cgi-bin/ "/home/www/cgi-bin/" <Directory /home/www/cgi-bin> AllowOverride None Options ExecCGI Order allow,deny Allow from all </Directory> ------------------------ デレクトリー /home/www/cgi-bin 属性(775 rwxrwxr-x) CGIファイル 属性(775 rwxrwxr-x) http://eiwa-up.com/cgi-bin/index.pl http://eiwa-up.com/cgi-bin/index.cgi 同じファイルで拡張子が.plは正常に動作します。 拡張子が.cgiだと動かない状態です。 お忙しい中申し訳ありませんが、何方か助けてください。 お願いいたします。 趣味で無料レンタルCGIをボランティアで提供していたのですが、 先月Linux Laser5が老朽化のためダウンしてしまい、新しくFedora11のwebサーバーを新インストールしているのですが私の知識では解決できそうにありません。無料レンタルCGIで使用していたサーバーのためたくさんの方にご迷惑おかけしている状態です。 なぜ.cgi拡張子だと動作しないのか?解決方法を教えていただけたら憂いしいのですが。よろしくお願いいたします。

  • a.cgiからb.cgiを

    a.cgiと、b.cgiの2つのcgiがあり、a.cgiからb.cgiを起動する方法ってあるんですか? 2つのcgiを1つのアクションで順次起動させたいのですがその方法があれば教えてください。 a.cgiで<META HTTP-EQUIV="REFRESH" CONTENT="0; URL=b.cgi">を含むHTMLを出力すると起動しますか? 何か問題ありますか? あるいは、FRAMEを使って起動できますか?  何かうまい方法があれば教えてください。

    • ベストアンサー
    • CGI
  • フォームからCGIを起動できない

    こんばんは。 WebサーバApacheでCGIを作成しています。 DocumentRootが初期設定/var/www/html/で、その下にindex.htmlを作成しました。 次にcgiのディレクトリが初期設定の/var/www/cgi-bin/で、その下にtest.cgiを作成しました。 そして、test.cgiのパーミッションを-rwxr-xr-xにしてからApacheを起動しました。 別マシンのブラウザからhttp://xxx.xxx.xxx.xxx/index.htmlでアクセスし、フォームのテキストボックスに「abc」と入力して送信ボタンを押しましたが、404エラーになってしまいます。 (アドレスバーには「http://xxx.xxx.xxx.xxx/test.cgi?NAME=abc」と表示) ブラウザのアドレスバーに直接「http://xxx.xxx.xxx.xxx/cgi-bin/test.cgi?NAME=abc」とすると正常にアクセスできます。 ドキュメントルート配下にあるindex.htmlからドキュメントルート外にあるCGIのディレクトリ(ScriptAlias /cgi/bin/ "/var/www/cgi-bin/")を参照するにはどのようにしたらよいのでしょうか? ----------index.html---------------- <HTML> <HEAD><TITLE>フォーム</TITLE></HEAD> <BODY> <FORM ACTION="../cgi-bin/test.cgi" METHOD="GET">名前 <INPUT TYPE="TEXT" NAME="NAME"><BR> <INPUT TYPE="SUBMIT" VALUE="送信"> </FORM> </BODY> </HTML> ----------index.html---------------- ----------test.cgi------------------ #!/usr/bin/perl $str = $ENV{"QUERY_STRING"}; print << "EOF"; Content-type: text/html <HTML> <HEAD><TITLE>TESTCGI</TITLE></HEAD> <BODY>$str</BODY> </HTML> EOF ----------test.cgi------------------

    • ベストアンサー
    • CGI
  • 自前サーバでCGIを~

     まずはLAN内だけで掲示板などのCGIを実行できるようにしてみよう、ということでApacheを使ってCGIの設定をしているんですが、ブラウザからCGIファイルを起動してもInternal Server Errorと出てしまいます。よってそれ以前ということで・・・  コマンドラインから「perl test.cgi」のようにCGIファイルを実行してみるとちゃんと動作するんですが、「type -a perl」で検索したフルパスをそのままCGIファイルに「#!/usr/bin/perl」などのように書いても、ファイルがコマンド化されてくれません。でも、perlの実行ファイルは存在していました。  これは、どうすれば解決できるのでしょうか?

  • 自宅サーバでCGIが機能しないのです

    素人の質問で恐縮です。自宅サーバを構築中ですが、アパッチをインストールし、DDNSによるドメインを取得し、HPを公開できました。FTP環境もできました。ただ、ActivePerlの最新版ををインストールし、コマンドプロンプトで起動確認もできたのですが、CGIファイルをcgi-binフォルダに入れても機能しません。一行目を#!c:/perl/bin/perlか、#!c:/perl/bin/perl.exeにしたのですが、パールをつかみにいかないのです。サーバはWindowsXPのホームエディションSP2ですが、WindowsはUNIXみたいにパーミッションの概念がないので設定は不要だと、あるサイトに書いてましたが不要ですか?確かに以前、プロバイダのWEBスペースでCGIの掲示板を使っていた時は、FTP上でパーミッションを設定していましたが、自宅サーバ(windows)ではFTP上で設定しようとしてもはねつけられてしまいました。どなたかアドバイスいただけましたら幸いです。

    • ベストアンサー
    • CGI
  • URLにCGIのファイル名を出さない方法

    同じCGIを使ってサービスしているサイトで、URLにCGIのファイル名を含むサイトと 含まないサイトがあります。例えば bbs.cgi というCGIだとすると、  (A) http://foo.com/bbs.cgi/page01  (B) http://bar.com/page01 というサイトがあります。この違いはどこから来るのでしょうか? 同じCGIを入手してインストールしましたが、現状(A)の状態です。 (B)のようにしたいと思っていますが、やり方が分かりません。 よろしくお願いいたします。

    • ベストアンサー
    • HTML
  • 外部テキストの読み込み (ホストから外部サーバーへ)

    いつもお世話になっております。 今回はFLASH作成にあたって解決方法が見当たらず ご助言頂ければ、と思い投稿させて頂きました。 ・目的 SWFを設置したAのサーバーからBのテキストを読み込み表示させる (例: SWFがhttp://aaa.com/にあり、そこからhttp://bbb.com/date.txt のテキストを読み込む) loadVariables関数ではホスト内でのみの読み込みしか 出来ない様で、いい手法はないでしょうか? 具体的にはAのサーバーにSWFを設置しAのサーバーでWEBから呼び出し、 Bのサーバーにあるテキストを読み込み、AのサーバーにあるSWF内に テキストとして表示させる、というのが目的です。 ちなみに使用バージョンはFLASH5と古めですが、 "新しいバージョンなら出来ますよ"等もあればお願い致します。 補足要求あればお願いします。 宜しくお願い致します。

    • ベストアンサー
    • Flash

専門家に質問してみよう