• ベストアンサー

これはサーバー側の設定?

お世話になります。 ろくにperlも書けない初心者です。 Flash(SWF)内でメールフォームを作っています。 丁度良いサンプルがあり、そのCGI(perl)をそのまま拝借。 テスト用(自前)のサーバーでは問題なく動作。 ところが実際に使用するサーバーに上げてみると動かないのです。 仕組みとしては、swfからgetURLで変数(送信元、送信先、メッセージなど)をcgiへPOST送信。 cgiは未記入のモノがあったらerror、埋まっていればOKの変数を返す。 (swf内のテキストボックスを受信用に空けています) その変数によって、飛ぶフレームを判断、「送信完了」「送信エラー」などを表示する。 といったモノです。 CGIの設置位置(perlへのパス、cgiへのパス)は確認しました。 パーミッションも確認済み。 何より、返り値の無い、HTMLを生成するタイプのCGIは動作しています。 さて、どうすれば上手く表示されるか分かりませんか? サーバーによってそういった違いってあるのでしょうか? 念のため、仕様は以下の通りです。 ウェブサーバーソフト(httpd) Apache1.3.22 Cコンパイラ gcc (ver2.8.1)/usr/local/bin/gcc OS Solaris2.6 SPARC版 利用可能なPerl Perl5 ( 5.005_03 ) よろしくお願いします。

noname#5549
noname#5549
  • Perl
  • 回答数3
  • ありがとう数1

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

  • ベストアンサー
  • duckling
  • ベストアンサー率47% (88/185)
回答No.3

# No.2 です。 「CGI は動作している」と書いてあるので ActionScript の方に問題があるのではとのことで書いたのですが。 Flash から投げられる変数を CGI に URL から手動で投げてみて、(別にPOSTでもいいのですが。 ブラウザに変数が表示されるされるかどうかを確認してみてはどうでしょうか。 CGI が返す変数を確認したら原因が分かると思いますよ。

noname#5549
質問者

お礼

返事が遅れて申し訳ないです。 別の仕事の締め切りに追われてまして...(汗 ちょっと中途半端で申し訳ないですが、 一旦、締め切ります。 (でないと返事が遅れる一方なので) お二方に頂いたアドバイスを元にちょっと頑張ってみます。 どうしても駄目だったときは、またお世話になります。 有り難うございました。

その他の回答 (2)

  • duckling
  • ベストアンサー率47% (88/185)
回答No.2

どう動かないのかがよく分からないのですが、 Flash + CGI がローカルで動いてサーバで動かない原因の一つとしては、 転送スピードに問題がある場合が多いです。 ローカルサーバでは瞬時に変数が返るので処理出来るのですが ネットを介しているので瞬時には返って来ず、 処理後に返事が返って来ても、Flashの方はすでに処理を終えている、 という状態です。 setInterval で function を数回呼び出して、 変数が返って来てから、次の処理をすれば問題ないと思います。 CgiCheckID = setInterval(Check,100); function Check(){  if(CGI_ANSWER != ""){   clearInterval(CgiCheckID);     次の動作........   (エラーを表示するとか、いろいろ)  } } 試してみてくだされ。

noname#5549
質問者

補足

回答有り難うございます。 >どう動かないか FlashからCGIを叩いたとき、 CGIはエラーかどうか、変数を返します。 その変数の内容によって、どのフレームへ飛ぶかが変化するのですが、 待機中の状態から動かないんです。 つまりCGIから変数が代入されるのを待っている状態です。 また、テストで僕が借りているサーバーにアップしたときは上手くいっています。(ローカルではない、という意味です) そして、実際のサーバーの方では他のCGIは普通に動いています。 ところで回答いただいたのはActionScriptなのでしょうか? 試してみます。

  • 7623goo
  • ベストアンサー率46% (34/73)
回答No.1

こんにちわ。 GetURLではなくloadVariablesを使う方法はだめでしょうか? CGIからの変数の返し方のところをもう少し 詳しく書いていただけるとわかるかもしれません。

noname#5549
質問者

補足

あ~、力一杯間違いました。(汗 そう、loadVariablesNumです。 というかActionScriptが原因とは思えないんですよね。 実際、テストサーバー(要するに自前)で動作確認は出来てますから。 念のため参考にした(Flashの)サンプルはこれです。 http://www.game3rd.com/flash/f4/expert/mail/ よろしくお願いします。

関連するQ&A

  • CGIのサーバーへの転送

    CGIは素人です。商品の申込みフォームでCGIを使おうとしています。 マニュアルどおりにすすめていますが、サーバーへ送って、送信ボタンを押すとエラー画面になってしまいます。Perlパスにも書き換えていて、アスキーで送っています。ヒントになるご回答おまちしています。

    • 締切済み
    • CGI
  • 自前サーバでCGIを~

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

  • send()メソッドでサーバーに変数を送信したとき、サーバー側から戻値を受け取ってしまう

    使用環境 os:Mac OS X Flash MX send()メソッドでサーバーに変数を送信したとき、サーバー側から戻値を受け取ってしまうためブラウザが起ち上がり、Internal Server Errorと表示されてしまいます。 戻値を受け取る必要が無いので、perlの実行文にはprint命令はありません。なぜ、戻値が発生してしまうのでしょうか? スクリプトは以下のような簡単なものです。 mySendVars = new LoadVars(); mySendVars.sendtxt = "test"; mySendVars.send("http://~.cgi","POST");

  • Apacheの設定について

    WindowsXP SP2 のローカルでCGIを動作させるために  http://www.adminweb.jp/apache/ を参考に下記を試みました。 (1)Apache ダウンロード・インストール・接続確認   「http://localhost/」へアクセスして「It works!」表示確認    (htdocs ディレクトリの index.html) (2)ActivePerlインストール    perl -v perl -h で動作確認 (3)CGI用エイリアスの設定    ScriptAlias /cgi-bin/ "C:/SERVER/Apache/cgi-bin/" (4)以下の test.pl を C:/SERVER/Apache/cgi-bin/ に設置    ------------------------------------------------------    #!C:/Perl/bin/perl.exe print "Content-type: text/html;\n\n"; print "<html><body><h1>test cgi</h1></body></html>\n";   -------------------------------------------------------    http://localhost/cgi-bin/test.pl の実行で    「Internal Server Error」になってしまいます。 どこの設定が間違っているのか見当がつきません。 何卒ご指導宜しくお願い致します。

  • plalaのcgiサーバへのPerlプログラムのUPについて

    windows上のローカルサーバで、自作のperlプログラムを動かし、きちんと動作したのでplalaのcgiアカウントをとり、UPした後、パーミッションもplalaの注意書きに書かれていたとおり、ディレクトリ以外のバイナリや、テキストを「704」に変更しました。 Perlへのパスも間違っておらず、プログラムミスということもないと思っています。 しかし、UPしたcgiファイルにアクセスしようとすると、「Internal Server Error」と表示され、パーミッションを「755」などにかえても、パーミッションがおかしいとでます。 いったいパーミッションを何にすればよいのでしょうか?

  • サーバで上手く動かない?

    こんばんわ。 お世話になっています。 アクセス集計を行うCGIがあるんですが、ローカルでちゃんと動作確認できたのにサーバにあげたら上手く動いてくれません。 CGIはあるログファイルからデータがあればカウントしてグラフ化し表示するものです。 一応、ちゃんとサーバ上で動作していたものらしい上、ローカルでちゃんと動作したのでスクリプトミスと言うことはないと思います。 考えられるとしたらパーミッションの設定かと思い、700,705,755,777と試したのですが結果は変わりありませんでした。 他に考えられる原因があるとすれば何かありますか? ちなみにローカルで動作させた際のOSはWindowsです。 サーバはUnixですが、動作していたと思われるサーバもUnixでした。 Perlのバージョンは共に5.6です。 よろしくお願いします。

    • 締切済み
    • CGI
  • なんでサーバーエラー??

    CGIをはじめて、まだまだ初心者です。 プログラムは、MS-DOSで構文チェックして、 OKとでるのに、サーバーエラーっておかしくないですか? もちろん、サーバは、自分のパソコンに アパッチいれて、Perlいれて確認するんですが、 何がエラーなんでしょう・・・? まだ、高級なCGIなど作れないので、 フリーのスクリプトをDLしてきました。 まず、構文チェックOK。 そして、Perl開いたまま、 ブラウザにアクセスします。 そうしたら、サーバーエラーとなるのです。 何を変えていったらいいのか教えて下さい。 (自分で作った簡単なアンケートフォーム とかは成功しました)

    • ベストアンサー
    • CGI
  • CGIフォームが作動しない原因について

    メールフォームのCGIを作成したところ、起動せず、500番のISEエラーになってしまいます。 他のサーバーに置いたところ問題なく起動し、 perlのパスは #! /usr/bin/perl #! /usr/local/bin/perl どちらもためし、 パーミッションも、705や755などで試したのですが、作動いたしませんでした。 また、メールフォームCGIに問題があるのかと、簡易的なCGIを設置し、パスやパーミッションをいじってみたのですが、そちらも作動いたしませんでした。(他サーバーでは機動確認済み) やはり、パーミッションやperlのパスがサーバーによって独自の設定になっているのでしょうか? その場合、サーバー管理会社に連絡をとらずに、確認する方法はあるのでしょうか? CGIやサーバーなどのネットワークに詳しくないもので、 どうかご教授ください!

    • 締切済み
    • CGI
  • スキン式掲示板で変数が直接出てしまう suEXECサーバーのせい?

    CGIの初心者です。 <a href="http://dream.lib.net/room/cgi/e_vbbs.html">こちらのサイト<a>からCGIをDLし、HTMLでスキン作成できる掲示板を作ろうとしているのですが、うまくいきません。 CGIはきちんと動作するのですが、HTMLスキンの方からCGIへうまく連動してくれません。スキンには現在$name等、変数が直接表示されており、投稿するとリロードするだけで何も出力しません。 CGIの方に直接投稿すればきちんと反映されます。 試しに、DLしたものそのままで(perlのパスはそのままでいける設定でした)、アップロードし確認しましたが、同じ状態です。 サーバーは、HTMLやCGIのおき場所は決まっていないタイプです。suEXECサーバーであることは何か関係あるのでしょうか? 何もいじっていないのでシンタックスエラーとかでは ないような気がするのですが…。 パーミッションもマニュアルどおりに設定しています。(CGI 755 dat 666 pl 644 html 755) これが原因じゃないか、というがわかる方 おしえてください。

    • ベストアンサー
    • CGI
  • 通販開業Xのサーバーを自宅サーバーにするには

    通販開業Xでレンタルサーバーを借りると結構お金がかかるので自宅サーバーにお店をおきたいのです。なんどか試しているのですが、うまくいきません。 初期設定で (1)レンタルサーバーの選択 (2)cgiに記述するperlのパス (3)管理メニューにアクセスするためのURL 今の設定は (1)その他 (2)#!/usr/local/bin/perl (3)127.0.0.1/cgi/ です。 自宅サーバーに通販開業Xをインストしているため、(3)のようにしているのですが、これであっているのでしょうか? 自宅サーバーには「active perl」「apache」「Tiny FTPD」等をインスト&設定済みです。テスト用の掲示板などは正常に動作するのですが、なぜか通販開業Xはだめです。 ページにアクセスすると404エラーで表示できません。 tsuhanFTPでのアクセス、アップロードはできます。

専門家に質問してみよう