• ベストアンサー

HTML、CGIについて

HTMLをCGIプログラムに組み込んで実装させようと考えています。 用件はそのプログラムファイルの拡張子は.htmlでも動くのかということです。もしいけない場合はどの拡張子を使えばいいのかアドバイスください。 よろしくお願いします。

  • fm0606
  • お礼率13% (100/761)

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

  • ベストアンサー
noname#1785
noname#1785
回答No.2

CGIといっても、いろんな種類があります。 言語はなんですか? また、サーバーはレンタルですか? 自分で構築するのですか? 種類はNTですか?UNIX?LINUX? 基本情報がまったくわからないので、アドバイスのしようがありません。 一番汎用的なPerlであれば、拡張子htmlはまず無理でしょう。 一般的には.cgiや.plになります。 ryouchiさんがおっしゃっているとおりです。 PHPなら.php、ColdFusionなら.cfmです。 この3つなら、レンタルサーバーで可能です。 ただし、.htmlはCGIに使えないと言う事はありません。 JavaやServer Side JavaScriptでは、拡張子.htmlでCGIが使えるようです。 ただ、JavaやServer Side JavaScriptの使えるレンタルサーバーというのは聞いたことがありません。 あったとしても、かなり高額なサーバーになると思います。 ご参考まで。

fm0606
質問者

補足

先日質問させていただきました者です。HTMLの件で、 説明不足ですみませんでした、レンタルじゃなく自分のパソコンです。Apacheのwebサーバを使います。OSはwin2000serverです。 C++言語で組み込もうと考えています。CGI実行プログラムとただHTML画面を表示するのとをサーバに区別させます。そこでプログラムファイルの拡張子の区別はいらなくなるのかなと思いました。 よろしくお願いします。

その他の回答 (2)

  • sight
  • ベストアンサー率53% (199/370)
回答No.3

試したことはありませんが、実行ディレクトリにhtaccessファイルの設置が 許可されており、そこでの設定が反映される環境ならば、.htaccessに .htmlという拡張子のContent-typeをapplication/x-httpd-cgiとする記述を すれば実行はできるかな?と思います。 が、その場合同一ディレクトリ内(と、下階層)の.htmlという拡張子のファイル はすべてcgiプログラムとして解釈されると思います。 拡張子の意味を考えるとあまりおすすめできるものではないかもしれませんね・・・

fm0606
質問者

補足

先日質問させていただきました者です。HTMLの件で、 説明不足ですみませんでした、Apacheのwebサーバを使います。OSはwin2000serverです。 C++言語で組み込もうと考えています。CGI実行プログラムとただHTML画面を表示するのとをサーバに区別させます。そこでプログラムファイルの拡張子の区別はいらなくなるのかなと思いました。 よろしくお願いします。

  • ryouchi
  • ベストアンサー率41% (52/125)
回答No.1

プロバイダーによっても違いますし、CGIを作成するソフトウェアによっても違います。 ひとつ言えることは拡張子htmlでは動かないと思います。 (サーバ側で特別なマッピングをしていれば別ですけど・・・) perl(又はjperl)などで書かれたものは、*.plまたは*.cgiをよく使います。 お使いのプロバイダに伺ってみては如何でしょうか? なお、CGIとはCommon Gateway Interfaceの略ですので、意味から鑑みると、決してperlで記載しなければいけないってことではないと思います。 (最近CGI=perlってみんな思っているのかもしれません) どの言語でCGIを書くのか、どのサーバソフト(apacheとかIISとか)でどのOSで動かすのかがわかればもう少し回答も近くなるかと思います。 少なくとも、.htmlでは動かないと思いますよ。

fm0606
質問者

補足

説明不足ですみません、Apacheのwebサーバを使います。OSはwin2000です。 C++言語で組み込もうと考えています。CGI実行プログラムとただHTML画面を表示するのとをサーバに区別させます。そこでプログラムファイルの拡張子の区別はいらなくなるのかなと思いました。

関連するQ&A

  • CGIからHTMLファイルを作るには?

    フリーの2ちゃん系の掲示板CGIを見ていて ふと、思ったのですが 2ちゃんねるって実際に消費者がアクセスするファイルは[.html]ファイルになりますよね? つまり、CGIでなんらかの処理をして[.html]ファイルにする事ができるんですよね? どうやったらいいか、ナニカ説明系のページご存知ないですか? 前出のダウンロードをしても、恐ろしくファイルが分かれていて、どこにその処理をしている部分があるのかわからないんです。 HTMLに書き出す要点部分だけが知りたいんですけどね 実はこれ理由があって、(この理由も間違いかもしれないんですけど) HTMLファイルの方が検索エンジンにひっかかりやすいんでしょ?(だから2ちゃんのスレッドはGOOなどでもひっかかりやすい)と予測してます ここの拡張子も。PHPなので、引っかかりにくいのではと判断してます。 検索に引っかからせたやすいCGIを作る場合 HTMLに吐き出せるのであれば是非とも利用したいです。 宜しくお願いします。 フリーのCGIをダウンして、ちょっとした改造ぐらいならできる知識程度の持ち主です。

    • ベストアンサー
    • CGI
  • HTMLにCGIを

     こんにちは、非常にお世話になってます。また質問ですが宜しくお願いいたします。  HTMLファイルにCGI(perl5使用)を埋め込みたい (言い換えると index.cgi というファイルではなく index.html というファイル名でCGIを使いたいのです。) のですが何か方法が無いでしょうか?本やWebを探しましたが、情けないことにこれという方法を見つけることができませんでした。よろしければご指導宜しくお願い致します。

    • ベストアンサー
    • CGI
  • HTMLからCGIの呼び出しができません。

    既に作ってあるHTMLファイルをコピーして、CGIファイルの名前を変えて送信ボタンをクリックしました。CGIファイルはTITLEだけの記述にしましたが、TITLEは表示されず、http://~のようにアドレスが表示されます。HTMLファイルの方は、<form action="./A.cgi" method="post">のように修正し、CGIファイルの方には、以下のように記述してあります。何が原因でTITLEが表示されないのでしょうか? #!/usr/local/bin/perl use CGI qw(:standard); print<<END_OF_HTM; Content-type:text/html <HTML> <HEAD> <TITLE>XXXXXX</TITLE> </HEAD> </HTML> END_OF_HTM

    • ベストアンサー
    • Perl
  • HTMLスキン型CGIを作るには?

    フォームメールの制作を行っているのですが、汎用性を高めるために、HTML部分はすべて外部に書き出して処理に関するところだけをCGIに記述しようと考えています。 まず、デザインテンプレート(HTMLスキン)に$html_contentsなどと挿入位置を記述しておき、 CGIへのアクセスがあった際に、スキンを読み込み、その挿入位置に結果を代入するというものです。 できるなら、エラーメッセージや完了メッセージの部分も外部(HTMLを記述した*.datかな?)ファイルとしたいです。 参考になるサイトもしくは、プログラムをご存知の方はご教授願います。

    • 締切済み
    • CGI
  • HTMLにCGIカウンターを

    初歩的なCGI(Perl)のアクセスカウンターの作り方を学びました。 今まではHTMLでHPを作成していました。そこでトップページにアクセスカウンターを付けたいのですが、当然のことながら今のトップページは「index.html」ファイルです。このファイルにCGIによるアクセスカウンターをつける場合、「index.html」のファイルを一から「index.cgi」ファイルにPerlで書き換えなければならないのでしょうか。今の「index.html」の一部分を書き換えるだけでCGIのアクセスカウンターが設置できないものでしょうか。

    • ベストアンサー
    • CGI
  • CGIプログラム内でのHTML表記

    CGIプログラムの中で、HTML表記をする場合は一文ごとに print "<TITLE>集計結果</TITLE>"; というような方法しか知りません。 HTMLソースが長いのでもっと簡単な方法を用いたいのですが、どなたか教えてください。

    • 締切済み
    • CGI
  • CGIプログラム

    PHPに限らず、CGIプログラムで変数の内容を使ったHTMLコードを生成する場合に、単純にHTMLコードを出力しただけでは、正しいHTMLコードにならなかったり、CGIプログラムが動かないことがある。その場合には、どのようにしてその問題を回避するか。

    • ベストアンサー
    • CGI
  • HTML上(javascript)からCGIを実行する方法

    javascriptから外部実行ファイル(javascriptファイルではなくperlなどのCGI) を実行する方法を探しています。 下記のようにindex.htmとtest.cgiファイルを用意して、index.htm内の javascriptから外部cgiを実行させ、cgiの結果(test.cgiでは単に 『test』と表示するのみ)を表示したいと考えています。 利用増ですが、cgiやssiが使用できないサーバにindex.htmを置いて、 cgiが使用できるサーバ上のcgi結果を取得したいものです。 通常のcgiのように、1ページでcgi結果を表示するものではなく、 HTMLファイルの一部にcgi処理結果を表示させたいものです。 そもそも、SSIを使用しなければ下記のようなHTML内にcgiなどの 実行結果を表示する事は出来ないのでしょうか。 よろしくお願い致します。 ※下例のプログラムではcgi結果は表示されませんでした・・・。 ---<index.htm>---------------------------------------- <HTML> <BODY> <SCRIPT language="Javascript" src="http://xxx.xxx.xxx.xxx/test.cgi"></SCRIPT> </BODY> </HTML> ---<test.cgi>---------------------------------------- #!/usr/bin/perl print "test"

  • CGIプログラム

    以下の問題について教えてください。 お願いします。 PHPに限らず、CGIプログラムで変数の内容を使ったHTMLコードを生成する場合に、単純にHTMLコードを出力しただけでは、正しいHTMLコードにならなかったり、CGIプログラムが動かないことがある。その場合には、どのようにしてその問題を回避するか。

  • CGIでのHTMLとプログラムコードの分離について

    CGIでのHTMLとプログラムコードの分離について CGIプログラミングのフレームワーク的なアイデアについてご教示願いたいです。 CGIを記述する場合、その多くは下記のようなスタイルになるのではないかと思います。 1.formタグのactionからcgiを呼び出す     ↓ 2.cgiの中で計算やsendmail等の処理を実行     ↓ 3.結果をブラウザ上に表示するためprint等を利用してhtmlタグを表示 この手法を用いると、手順2のところでHTML部分とプログラムコード部分が混合してしまい、見栄え(html部分)を変更しようと考えた時、HTML部分の記述があるcgiプログラムを編集し、該当する部分のタグを表示させているであろうprint文の表示内容を変更する必要があります。 見栄えのhtml部分とCGIのコードを完全に分離することは出来ないのでしょうか??? 上記手順の「1」に関してはhtmlファイルを編集する事だけで、cgiファイルを編集する必要はありません。 手順「3」もリダイレクトを利用すれば可能だと思います。 問題は、手順「2」の部分です。 この部分の見栄え部分を変えようとすると、どうしてもcgiプログラムを開いて編集する必要に迫られてしまいます。 下記の例のような処理(見栄え用のhtmlファイルを読み込む方法)は出来ないものでしょうか? <例:アンケートフォーム> 1.アンケートフォーム(html)のformタグにあるactionからcgiを呼び出す     ↓ 2.cgiでformタグ内のテキストエリアやラジオボタン等の情報を収集     ↓ 3.収集結果を表示させるための「hantei.html」を読み込む     ↓ 4.読み込んだ「hantei.html」の中に収集結果を埋め込んで表示     ↓ 5.問題なければアンケート結果をsendmail等でメール送信   問題あれば手順1のアンケートフォーム(html)へ戻る     ↓ 6.無事にメール送信出来れば、有難うございましたページ(html)へリダイレクト 上記手順の3と4が実現できれば、見栄えを変えたい時はhtmlファイルを編集すればよく、cgiプログラムを触る必要がなくなるのではないかと思います。 私が考えている事について、「自分はこうしている」とか「そうではなくてこうすれば良いよ」などなどありましたら、是非ご教示願いたいです。

    • ベストアンサー
    • Ruby