• ベストアンサー

CGIの中にJAVA Script

leaz024の回答

  • leaz024
  • ベストアンサー率75% (398/526)
回答No.4

 通常はkokucho81さんの言う通り、ヒアドキュメントを使うことをおすすめします。  またヒアドキュメントは行数がかさむので、1行のprint文内で処理したい場合は、makihiroさんのように「\」を直前につけて「"」をエスケープする(単なる文字として認識させる)ようにします。  ただこの方法は文字列が見にくくなる為、ミスの元になることが多いので、qqを使って   print qq{<BODY onLoad="OnLoad()">}; などのようにした方がよいでしょう。 (qqの区切り文字は{}でなくてもよいのですが、HTMLやJavaScriptでは絶対使わない文字を指定するようにすると、バグ予防になります。)  それからHTMLタグ内でも、"は省略しない方がいいですよ。value値がスペース交じりの文字列の場合や、値に指定した変数がヌルだった場合などに、予期しない動作をすることがあります。

xiaolong_goo
質問者

お礼

遅くなりましたがありがとうございました。 print qq{<BODY onLoad="OnLoad()">}; ・・・なんて方法もあるんですね。 いろいろと参考にさせていただきました。

関連するQ&A

  • CGIにJAVAの記述をしたい

    CGIプログラムの中にJAVAの記述をしたいのですが うまくいきません。 ヒアドキュメントでくくってみましたが 500エラーで表示されませんでした。 どう記述すれば動いてくれるんでしょうか? print "Content-type: text/html\n\n"; print "<html><head>\n"; print "<META HTTP-EQUIV=\"Content-type\" CONTENT=\"text/html; charset=Shift_JIS\">\n"; print "<link rel=\"stylesheet\" type=\"text/css\" href=\"$loaddir/style.css\">\n"; print "<title>$title</title>\n"; ここに下記のJAVA文を入れたいです。 print "</head>\n"; 記入したいJAVA <SCRIPT language="JavaScript"> <!-- document.write('<img src="momo/123.cgi?' + 'javaref=' + document.referrer + '" width=1 height=1>'); // --> </SCRIPT>

    • 締切済み
    • CGI
  • 私の作ったCGIスクリプトを見てください。どこが間違えていますか

    アクセスありがとうございます。 Red Hat Linux8.0でサーバを構築してCGIスクリプトを実行しようとしているのですが、どうもうまくいきません。 私が作成したCGIスクリプトは次のようなものです。 ファイル名「first.cgi」 #!/usr/bin/perl print "Content-type: text/html\n\n"; print "<HTML>\n"; print "<HEAD>\n"; print "<TITLE>First CGI</TITLE>\n"; print "</HEAD>\n"; print "<BODY>\n"; print "文字を表示するCGIです。\n"; print "</BODY>\n"; print "</HTML>\n"; そして文字コードを「EUC」、改行コードを「LF」に変換しサーバにアップロードしました。 その後SSHでサーバにログインし $ chmod 755 /home/burn/public_html/first.cgi と「first.cgi」に実行権限を追加し $ /home/burn/public_html/first.cgi と作成したCGIスクリプトをテストしてみたのですが : bad interpreter: No such file or directory とエラーメッセージが表示されてしまいます。 「そのようなファイルやディレクトリはありません」というような意味でしょうか。 しかし、そんなはずはないと思います。 $ ls /home/burn/public_html first.cgi と「ls」コマンドを実行すれば「first.cgi」が表示されるのですから。 他に何かする必要があるのですか。 このCGIスクリプトを動作させるにはどうすればいいのか教えてください。

  • CGIの掲示板での背景を固定するには?

    CGIで出来た掲示板の背景に使う画像をを上部中央に固定したいのですが、 どうすれば出来ますか? 使うCGIの背景の設定の記述には if ($backgif) {print "<body background=\"$backgif\" bgcolor=\"$bgcolor\" text=\"$text\" link=\"$link\" vlink=\"$vlink\" alink=\"$alink\">\n" と有ります。 方法が分かる方、教えてください~~!!

    • ベストアンサー
    • CGI
  • CGIスクリプトの結果が表示しない

    windows2000 proffesinal sp.4でActivePerl5.8.8..819・・・・、Apache2.054の環境で"10日で覚えるPerlCGI"を使用。IEバージョンは5でページを「表示できません」のエラーがときたまでる。 上記環境でApacheは正常に動作。TeraPad使用。CGIスクリプト1-2.cgiとして作成。 #! C:/perl/bin/perl # CGIヘッダーの出力 print "Content-type: text/html\n\n"; print "<DOCTYPE HTML PUBLIC \n-//W3C//DTD HTML4.01//EN\">\n"; print "<html>\n"; print "<head><title>Hello HTML</title></head>\n";# htmlの出力 print "<body><p>こんにちわ。これはHTML文書の例です。</p></body>\n"; print "</html>\n"; 上記スクリプトを1-2.cgiとしてApaghe2-htdocs-tendaysに保存 IEのURLに:: http://127.0.0.1/tendays/1-2.cgiと入力・・・そして下記の表示が出ました。 #! C:/perl/bin/perl# CGIヘッダーの出力print "Content-type: text/html\n\n";# htmlの出力print "\n"print こんにちわ。これはHTML文書の例です。 \n";print" "; 原因を教えてください。windows7 64bit でもこのようにスクリプトだけが表示されたことがあり(perl,Apacheのバージョンも最近のものを使用)その時は、相談室にお世話になりながら自分の 未熟さにあきれお尋ねしなかったのですが、最後HTML5を習えばのお答えで、今。参考書を買って人通り見たのですが、フォームメールや掲示板はやはり裏でCGIが動作しているので。また古いパソコンで始めたのでしたが最初からつまずきました。doreamweaber もあるのですが、能力がないのに 人様の作成したフりーソフトをスクリプトの意味が分からず貼り付けるのはいささか情けないかなと 考えています。最終的にはそうなると思っていますが、できればsendmailを使用したCGIスクリプトとかんがえています,が。とりあえず一歩一歩づつと思っています。10年以上前に作成したホームページをアップしっぱなしです。メールが送信できません。当時のプロバイダーがocnでその時提供されたもので裏でCGIが動いているなんて知りませんでした。今biglobeです。 自分の作りかけのホームページのURLは http://www7b.biglobe.ne.jo/~asunarohei/indexhei.htmlです。メールのスクリプトを貼り付けたいのです。それと掲示板をリンクさせたいです。 わからないことだらけで、ご迷惑かけますがよろしくお願いします。

  • RubyでCGIが動きません。

    RubyでCGIを作ってApacheを使ってアプリの練習をしようとしていますが、CGIのお置き場所かApacheの設定かCGIの書き方が悪いのかIEで動かすとCGIの内容を中途半端に実行して下記のようになってしまいます。 #!/ruby/bin/ruby -Ks print "Content-type: text/html\n\n" print "" print "" print "" print "" print "こんにちは、Ruby!" print "" CGIのソースは #!/ruby/bin/ruby -Ks print "Content-type: text/html\n\n" print "<html><head>" print "<meta http-equiv=\"Content-Type\" content=\"text/html; charset=Shift_JIS\">" print "<title>RubyでCGI</title></head>" print "<body>" print "こんにちは、Ruby!" print "</body></html>" 一番簡単なプログラムだと思うのですが、どこがいけないのでしょうか。ちなみにOSはVISTAです。 ちょっと気になるのはApacheMonitorServerが動かないこともあります。タイトルにはErrorと出ますが、メッセージでは「この操作を正しく終了しました」と出ます。 ちなみにApacheは動いてます。LocalHostで確認できました。 どなたかどうすれば良いのか教えて頂けないでしょうか。 よろしくお願いします。結構長い時間悩んでいます。

    • 締切済み
    • CGI
  • CGI勉強中(初心者です)

    #!/usr/bin/perl print "content-type:text/html\n\n"; print "<HTML>\n"; print "<head><title>CGI</title></head>\n"; print "<BODY>\n"; print "<H1><FONT COLOR=\"#FF0000\">こんにちは</FONT></H1>\n"; print "</BODY>\n"; print "</HTML>\n"; というCGIつくりました。 プロバイダの説明には Perlの場所 /usr/bin/perl または /usr/local/bin/perl となっていますが、 どこにどう置いて(ホームディレクトリでしょうか?)、どうやって起動させてよいのかさっぱりわかりません。 ご教授ください。

    • ベストアンサー
    • CGI
  • cgiについて教えて下さい。

    cgiについて教えて下さい。 ■cgiが実行できません。 ・os:windows7(64bit) ・apache2.2.16(windows32bit)※ローカル ・ActivePerl(インストール済み) ※httpd.confファイル(現状) ・Options Index FollowSymLinks Includes ExceCGI ・AllowOverride All ・AddHandler cgi-script.cgi ・AddType text/html.shtml ・AddOutputFilter INCLUDES .shtml ■http://localhost/abc/test.cgi を実行すると表示できず。 ・http://localhost/ にはアクセスできます。 ※windowsネットワーク診断/トラブルシューティングの結果 →リモートデバイスまたはリソースが接続を受け付けません。 ■上記、test.cgiのソース #! c:/perl/bin/perl # CGIヘッダーの出力 print "Content-type: text/html\n\n"; # HTMLの出力 print "<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.01//EN\">\n"; print "<html>\n"; print "<head><title>Hello HTML</title></head>\n"; print "<body><p>こんにちは。これはHTML文書の例です。</p></body>\n"; print "</html>"; 以上、宜しくお願い致します。

    • 締切済み
    • CGI
  • CGIが動作しません。

    最近、Perlを初めたのですが、 CGIがうまく動作しません。 他のCGIは動作しているので CGIは動作する環境だと思います。 http://からフルパスでCGIを実行しても、 以下のエラーがでます。 -------------------------------------  500 InInternalServerError  サーバーエラーです。  以下の理由が考えられます。  パーミッション等の設定が  間違っている可能性があります。  サイト管理者にお問い合わせ下さい。 ------------------------------------- ちなみに以下のような簡単なCGIも同様です。 ===================================== #!/usr/local/bin/perl print "Content-type: text/html\n\n"; print "<html><head>\n"; print "<meta http-equiv=Content-Type content=text/html; charset=x-sjis>\n"; print "<title>StartCGI</title></head>\n"; print "<body>\n"; print "<p align=center><font size=4>初めて書いたCGI</font></p>\n"; print "</body></html>\n"; exit; =====================================  なぜなんでしょう。 困ってます。 ご教授の程、宜しくお願い致します。

    • ベストアンサー
    • CGI
  • TOK2で基礎的なCGIをUPしたが動かない。

    TOK2(http://tok2.com/)に「posttest2.cgi」をUPしました。 ファイルマネージャで確認すると、CGIのパーミッションは700、 CGIを設置するディレクトリーのパーミッションは701です。 以下 posttest2.cgiです。 -------------------START----------------------- #!/usr/bin/perl print "Content-Type:text/html\n\n"; print "<html>\n"; print "<head><title>テスト</title></head>\n"; print "<body>\n"; print "TEST"; print "</body></html>\n"; ------------------- END ----------------------- IEでこのCGIを開くと「500 Internal Server Error 」になってしまいます。。 なにが悪いのでしょう?

    • ベストアンサー
    • CGI
  • CGIの中のjavascriptに関して

    教えて下さい。 下記のようなCGIファイルにjavascriptを記載しようと考えて いますが、どうしてもエラーとなってしまいます。 《エラー内容》 Network Error(tcp_error) *  《記載内容》 #!/usr/bin/perl <script type="text/javascript"> <!-- var url = "http://999.999.999.999/"; //ジャンプ先のURLを指定 var moveTime = 2000; //移動までの時間をミリ秒で指定 function jump(){ location.href = url; } setTimeout (jump, moveTime); //--> </script> print "Content-type: text/html\n\n"; print qq! <html> <head> <title>指定秒後に別のページへジャンプ</title> <META Http-Equiv="Content-Type" Content="text/html;charset=EUC-JP"> <body> <p><a href="index.html">index.html</a><p> </body> </html> !; 何か間違った記述の仕方をしているのでしょうか。。。 CGIファイルにjavascriptを記載する場合はどこへ記載すれば 良いでしょうか。。。。 教えて下さい。