出産前後の痔にはご注意!

htmlファイルに、外部のcgiを読み込みたいのですが、具体的な方法が分かりません。

保存する際の拡張子は、「.cgi」?それとも、「.html」がいいのですか?

宜しくお願いします。

A 回答 (3件)

 CGIとは、サーバー上で動くプログラムのことです。


 その質問だと「HTMLにプログラムを融合させたい」ということになり、意味がよく分かりません。

 もし、HTMLの一部をCGIによって動的に変化させたいのであれば、参考URL等の「SSI」に関する資料を読んでみてください。
 SSIとは、HTMLの一部分だけをプログラムによって描画する、といったようなものです。

 もし、俺の考える意図があなたのそれと違うなら、最終的に何がしたいのかを補足してください。

参考URL:http://www.tohoho-web.com/wwwssi.htm

この回答への補足

CGIファイルに外部のCGIファイルを読み込むには、どのようなプログラムを書けばいいですか?
特定の場所に、外部のCGIファイルを読み込みたいのですが。

補足日時:2006/10/25 11:04
    • good
    • 0

 #1です。



 根本的なところで用語の使い方に誤解があるようです。
 ここでは「読み込む」とは、どのような動作を指していますか?

 通常は、「メディアやサーバーに記録されたデータ等を、パソコンで処理可能な状態にする」ことをいいます。
 互いに連携させたり、またはデータを別のデータに埋め込んだりすることを「読み込む」とはいいません。

 あなたがどのような意図でこの言葉を使っているのか、もう1度補足してみてください。
    • good
    • 0

HTML内にCGIを読み込む。

という時点で意味がよくわかりません・・・
「htmlファイルに・・・」と書いている時点でそれはhtmlファイルですから拡張子は「html」ですよ。

それはHTMLで1ページ内をフレームで区切って、そこへCGIファイルを読み込みたいってことですか?
それともCGIで処理した結果(文字情報)をHTMLファイル内へ組み込みたいってことですか?

前者であれば、多少のHTML知識があれば簡単ですよね。
後者であればSSIというコマンドを使ってHTML内にCGIの結果を出力するという方法があります。その場合のファイル拡張子は「shtml」になります。
SSIについての詳しくはGoogleで検索するだけでも大量にありますのでそちらを参照ください。

参考URL:http://www.psl.ne.jp/cgissi.shtml,http://www.sco …
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人が検索しているワード

このQ&Aと関連する良く見られている質問

QHTML上(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"

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...続きを読む

Aベストアンサー

「Google AdSense」のjavascriptでは#1さんの回答にもありますがiframeを使用するような仕掛けになっているようです。
・javascriptでiframeを展開。
・iframeのsrcでcgiを指定。

>外部cgiでjavascriptを生成する仕組みを作り、その生成されたjavascriptを参照するという間接的な仕組みを設ければ可能になる
そういう仕組みも可能です。
また、直接的に<script type="text/javascript" src="xxxx.cgi"></script>
こういう書き方も可能です。
※xxxx.cgiでは処理結果をjavascriptのコードとして
print "Content-Type: application/x-javascript\n\n";
print "document.write('xxxx');";
みたいにして吐き出す必要があります。

Qcgiでhtmlファイルを読み込みたい

cgiでhtmlファイルを読み込み、状況に応じてcgiで内容の修正や追加をして表示させたいのですがどうしても元ファイルを読み込めません。

IN = "○○.html";
$line = open(IN, "r");

とか

$line = opne IN, "○○.html";

それに

$line = "○○.html";
open(IN, $line);
@line = <IN>;

など調べて出てきたもの一通りやってみたのですが、どうしても読み込みができません。
どうすればファイルの読み込みができるのでしょうか。
仕事でどうしてもやらなければならないので、ご存じの方お助けください。

Aベストアンサー

openはCGIが実行されているOSが管理しているファイルを開くためのものです。ファイルの相対パスか絶対パスを指定します。URLではありません。

http://○○.com/index.html等のURLのファイルを取得するには、HTTP等のネットワーク通信を経由してファイルを取得することになります。openとはまったく別の仕組みになります。

>将来的には同一サーバー・同一ドメイン
>今のところ、サーバーが全く別のところにあります。

前述の通り、openとHTTPは全く別物です。処理の負荷も全く違います。将来的にはopenを使う事になると思います(処理の負荷、速度を考慮して)。

その「将来」が近い将来なら、別サーバのファイルをCGIと同じサーバにコピーして、openを使って処理するCGIを作った方が良いと思います。今、HTTPを利用するCGIを作っても無駄になる可能性があります。


HTTPを利用する場合、openよりもかなり複雑なプログラムになります。(LWPなどのモジュールが利用できる場合は簡単で、数行のコードで済みますが・・・)

LWPなどのモジュールが利用できる場合

#!/usr/local/bin/perl
use LWP::Simple;
$url = "http://○○.com/index.html";
$content = get($url);
print $content;


モジュールが利用出来ない場合は、ここで説明するのは面倒なので、

http://ash.jp/perl/socket_http.htm

こちらのサイトなど参考にして下さい。



>ただ、テストで同一サーバーでもやってみましたがうまくいきません。

$filename の内容は? http://~ は使えませんよ。
CGIの有るディレクトリからの相対パスで指定してみてください。

openはCGIが実行されているOSが管理しているファイルを開くためのものです。ファイルの相対パスか絶対パスを指定します。URLではありません。

http://○○.com/index.html等のURLのファイルを取得するには、HTTP等のネットワーク通信を経由してファイルを取得することになります。openとはまったく別の仕組みになります。

>将来的には同一サーバー・同一ドメイン
>今のところ、サーバーが全く別のところにあります。

前述の通り、openとHTTPは全く別物です。処理の負荷も全く違います。将来的にはopenを使...続きを読む

Qhtmlファイルへのcgiの組み込みについて

gifファイルなどはcgiで<img>タグによってhtmlファイルに埋め込むことはできますが,cgiから出力されるtxtをhtmlに埋め込むことはできますか?
すべてをcgiでやれば済むことですが,もし方法があれば教えてください.
フレームを使用すればできると思いますが,できたら使用しない方法をお願いします.

Aベストアンサー

> html側ではperlで作成されたcgiではなくjavascriptで作成されたcgiですよね?
Perlで作られたCGIです。(一般にCGIがそうであるように、スクリプトの言語はPerlでなくてもかまいませんが。)

>perlとjavascriptが混在しているように見える
これはPerlです。
サーバ側からテキストとして'document.~'を出力しています。
受取ったブラウザは外部Javascriptとして読み込んでいるのでそのテキストをJavascriptとして処理します。

混乱させてしまったようですが、CGIというのはHTMLやIMGだけを返すためにあるわけではないということです。

前回書き忘れましたがヘッダーも
Content-type: text/html
ではなく
Content-type: application/x-javascript
とする必要があります。

あと、#1に補足ですがexecコマンドが禁止されていてもincludeでCGIを呼び出すこともできます。
SSI自体禁止されている場合も多いのですが。とにかくSSIが使えるならSSIを使うことをお勧めします。

> html側ではperlで作成されたcgiではなくjavascriptで作成されたcgiですよね?
Perlで作られたCGIです。(一般にCGIがそうであるように、スクリプトの言語はPerlでなくてもかまいませんが。)

>perlとjavascriptが混在しているように見える
これはPerlです。
サーバ側からテキストとして'document.~'を出力しています。
受取ったブラウザは外部Javascriptとして読み込んでいるのでそのテキストをJavascriptとして処理します。

混乱させてしまったようですが、CGIというのはHTMLやIMGだけを返すために...続きを読む

QCGIの中で出力するテキスト内容をhtml側で表示する方法。

htmlからCGIファイルを呼び出すと、そのCGIは動作はしているようですが、
print等でhtml形式で文字出力させている部分は、ブラウザ内に表示されません。
今やって失敗している方法です。どのようにするのが良いか教えて頂ければ幸いです。

1.CGIスクリプト(Perlで記述)を用意... test.cgi
-----------------------------------------------------
#!/usr/bin/perl
print "Content-type:text/html; charset=shift_jis\n\n";
print <<__EOD;
<html lang="ja">
<head>
<title>TITLE</title>
</head>
<div align=center>
<a>テスト1</a><br>
<a>テスト2</a><br>
</div><br>
</body></html>
__EOD

open(OUT,">a.tmp") || die "$!";
print OUT "aaaaa\n";
close(OUT);
-----------------------------------------------------


2.htmlを用意 ... test.html
-----------------------------------------------------
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN">
<html>
<head>
<title>HTML TEST</title>
</head>
<body>
<script src="http://xxx/CGI/test.cgi"></script>
</body>
</html>
-----------------------------------------------------

上記のとき、動作として、

◆ブラウザからCGIのパス(http://svr1/CGI/test.cgi)に直接アクセスした場合、
「テスト1」「テスト2」の文字が表示され、a.tmpファイルも作成されている。

◆ブラウザからhtml(http://svr1/test.html)にアクセスした場合、ブラウザ画面は何も表示されない
(真っ白となる)が、a.tmpファイルは作成されている。

のようになってしまいます。

後者のようにして、htmlからCGIファイルを呼び出すと、そのCGIは動作はしているようですが、
print等でhtml形式で文字出力させている部分は、ブラウザ内に表示されません。

以上、よろしくお願い致します。

htmlからCGIファイルを呼び出すと、そのCGIは動作はしているようですが、
print等でhtml形式で文字出力させている部分は、ブラウザ内に表示されません。
今やって失敗している方法です。どのようにするのが良いか教えて頂ければ幸いです。

1.CGIスクリプト(Perlで記述)を用意... test.cgi
-----------------------------------------------------
#!/usr/bin/perl
print "Content-type:text/html; charset=shift_jis\n\n";
print <<__EOD;
<html lang="ja">
<head>
<title>TITLE</title>
</head>...続きを読む

Aベストアンサー

<script src="http://xxx/CGI/test.cgi"></script>としているなら
perlで出力するヘッダーは
print "Content-Type: application/x-javascript\n\n";
としないとならないでしょう。

perlではjavaScript構文を出力します。

例えばhtmlでは・・
<BODY>
<SCRIPT TYPE="Text/Javascript" LANGUAGE="Javascript">
<!--
document.write ("<SCRIPT TYPE=\"text/JavaScript\" SRC=\"test.cgi\"></SCRIPT>");
// -->
</SCRIPT>
</BODY>

として、perlでは

#!/usr/bin/perl
print "Content-Type: application/x-javascript\n\n";
print "document.write('<A HREF=\"other.html\">てすと</A>');";

てな感じです。

<script src="http://xxx/CGI/test.cgi"></script>としているなら
perlで出力するヘッダーは
print "Content-Type: application/x-javascript\n\n";
としないとならないでしょう。

perlではjavaScript構文を出力します。

例えばhtmlでは・・
<BODY>
<SCRIPT TYPE="Text/Javascript" LANGUAGE="Javascript">
<!--
document.write ("<SCRIPT TYPE=\"text/JavaScript\" SRC=\"test.cgi\"></SCRIPT>");
// -->
</SCRIPT>
</BODY>

として、perlでは

#!/usr/bin/perl
print "Content-Type: appli...続きを読む

Q1つのformで複数のactionを実行できますか?

フォーム内に商品の購入ボタンがあります。同じフォーム内に商品名でグーグルのサイト内を検索させるボタンを設置し、横に並べることは可能ですか?
フォームの入れ子はよくないようなので、検索をJava scriptでできればよいのですが・・・
スタイルシートではデザイン上無理でした。

<form id="fm" name="fm" action="URL" method="POST">
<input type="hidden" name="shouhinmei" value="商品名">
<input type="hidden" name="kakaku" value="500">
<input type="image" src="kounyuu.gif value="購入">

<form method=get action="http://www.google.co.jp/search">
<input type=hidden class="q" name=q value="商品名"><input type=hidden name=ie value=UTF-8><input type=hidden name=oe value=UTF-8><input type=hidden name=hl value="ja"><input name=btnG type="image" src="検索.gif value="検索"><input type=hidden name=sitesearch value="サイトのURL"></form>
</form>
</form>

+----+  +----+
|購入|  |検索|
+----+  +----+

フォーム内に商品の購入ボタンがあります。同じフォーム内に商品名でグーグルのサイト内を検索させるボタンを設置し、横に並べることは可能ですか?
フォームの入れ子はよくないようなので、検索をJava scriptでできればよいのですが・・・
スタイルシートではデザイン上無理でした。

<form id="fm" name="fm" action="URL" method="POST">
<input type="hidden" name="shouhinmei" value="商品名">
<input type="hidden" name="kakaku" value="500">
<input type="image" src="kounyuu.gif value="購入">...続きを読む

Aベストアンサー

では、以下のような感じで。
なるべく多くのブラウザで動くように書いたつもりですが検証は充分行ってください。

<html>
<head>
<title></title>
<script type="text/javascript">
<!--
function searchGoogle(q) {
document.forms['searchForm'].elements['q'].value=q;
document.forms['searchForm'].submit();
return false;
}
//-->
</script>

</head>
<body>

<form action="URL">
~~
<input type="image" src="kounyuu.gif value="購入">
<a href="http://www.google.co.jp/" onclick="return searchGoogle('商品名')"><img src="検索.gif" border=0></a>
</form>

<form action="http://www.google.co.jp/search" id="searchForm" style="display:none;">
<input type=hidden name="q">
<input type=hidden name=ie value="UTF-8">
<input type=hidden name=oe value="UTF-8">
<input type=hidden name=hl value="ja">
<input type=hidden name=sitesearch value="サイトのURL">
</form>

</body>
</html>

では、以下のような感じで。
なるべく多くのブラウザで動くように書いたつもりですが検証は充分行ってください。

<html>
<head>
<title></title>
<script type="text/javascript">
<!--
function searchGoogle(q) {
document.forms['searchForm'].elements['q'].value=q;
document.forms['searchForm'].submit();
return false;
}
//-->
</script>

</head>
<body>

<form action="URL">
~~
<input type="image" src="kounyuu.gif value="購入">
<a href="http://www.google.co.jp/" onc...続きを読む

QCGIの出力結果をHTMLに表示したい(SSI使用)

http://wa-ka.net/mash/sozai/tenshin/index.html
上記のサイトのアンケートCGIを利用しています。
アンケートの集計結果を、HTML上に表示したいのですが、どのようにしたら良いのかアドバイスをお願い致します。

HTMLのページの中に
<!--#exec cgi="./tenshin.cgi?mode=reportfile"-->
と記載しても上手く表示されません。
ですが、
<!--#exec cgi="./tenshin.cgi"-->
と記載すると、一応 tenshin.cgiにアクセスした時に表示される内容が表示されます。

HTMLファイルと、cgiは同じ階層においてあります。

<!--#exec cgi="./tenshin.cgi"-->

<!--#exec cgi="./tenshin.cgi?mode=reportfile"-->
の違いは、「?mode=reportfile」があるか無いかなのですが、このようにcgiの後に何か付いてしまうと、SSIでCGIを呼び出しHTMLに表示する事はできないのでしょうか?

アドバイスをお願い致します。

http://wa-ka.net/mash/sozai/tenshin/index.html
上記のサイトのアンケートCGIを利用しています。
アンケートの集計結果を、HTML上に表示したいのですが、どのようにしたら良いのかアドバイスをお願い致します。

HTMLのページの中に
<!--#exec cgi="./tenshin.cgi?mode=reportfile"-->
と記載しても上手く表示されません。
ですが、
<!--#exec cgi="./tenshin.cgi"-->
と記載すると、一応 tenshin.cgiにアクセスした時に表示される内容が表示されます。

HTMLファイルと、cgiは同じ階層においてあり...続きを読む

Aベストアンサー

<!--#exec cgi="./tenshin.cgi"-->
として
http://wa-ka.net/mash/sozai/tenshin/index.html?mode=reportfile
でアクセスすればQUERYは渡るけど駄目なのかな?

この辺りのことは
#! /usr/local/bin/perl
print"Content-type: text/html; charset=shift_jis\n\n";
print"<html><body>\n";
print"<h1> [環境変数のTEST] </h1>\n\n";

foreach(sort(keys %ENV))
{print" \$ENV{'$_'} = $ENV{$_} <P>\n"; }
__END__
ってなCGIを置いてみて、SSIで呼び出すとか色々試せば
ヒントが浮かんでくるかと思うけど?

>このような方法で問題はありますでしょうか?
さあ?私は特に問題があるようには聞いていませんが

QJavaScriptでCGIの呼出し・・・???

独学でプログラミングを始め、最近ではWeb系の勉強を始めました。
JavaScriptという言語とHTMLの勉強をしています。
そこで、どうしてもわからない事があります。
色々とネットで検索をしてみたのですが、私の理解力がないのか回答を見つけることができません。
どうか教えてください。

JavaScriptで他のサーバにあるCGIにデータを渡す方法です。

JavaScriptでHTMLの「Get」や「Post」のような機能があれば、できるのではないか、と考えたのですが、リファレンスを見ても、「Get」や「Post」はありませんでした。

JavaScriptにはそのような機能はないのでしょうか?
Ajaxという機能があるようなのですが、その機能を使うしか方法はないのでしょうか?
Ajaxも勉強したいと思っているので、方法があれば、ぜひ教えてください。

Aベストアンサー

> JavaScriptで他のサーバにあるCGIにデータを渡す方法です。
他のサーバーの同じドメインなのか、他のサーバーの別のドメインなのかで対処法は変わります。


別のドメインであればAjaxは使えません。(同じサーバーでも別のサーバーでも使えません)
DOMを使ってscriptエレメントを生成し、src属性にデータを付加して、ドキュメントに挿入するか(いわゆるJSONP)
<form>を使って送信する必要があります。
送信して終わり(受信なし)であれば、Imageオブジェクトのsrcプロパティかimgエレメントのsrc属性に付加することでも送信できます。
<form>のtargetをインラインフレームやopen()で開いたウインドウにしておけば、バックグラウンドで(非同期で)送信することもできます。(というか非同期を強制されます)

同一ドメインならAjax、JSONP、<form>、<img>のどれでも可能です。(同じサーバーでも別のサーバーでも使えます)

> JavaScriptでHTMLの「Get」や「Post」のような機能があれば、できるのではないか、と考えたのですが、リファレンスを見ても、「Get」や「Post」はありませんでした。
JavaScriptの前提知識としてHTMLの内容は必須ですので、そのようなことを解説しているリファレンスはないと思います。
三角関数を解説しているところで足し算やかけ算の仕方を解説しているところがないのと同じです。

HTMLのformの項目、およびCGIの受信処理に関しての項目に詳しく書かれていると思います。
(リファレンスによっては書かれていないこともあります)

> JavaScriptで他のサーバにあるCGIにデータを渡す方法です。
他のサーバーの同じドメインなのか、他のサーバーの別のドメインなのかで対処法は変わります。


別のドメインであればAjaxは使えません。(同じサーバーでも別のサーバーでも使えません)
DOMを使ってscriptエレメントを生成し、src属性にデータを付加して、ドキュメントに挿入するか(いわゆるJSONP)
<form>を使って送信する必要があります。
送信して終わり(受信なし)であれば、Imageオブジェクトのsrcプロパティかimgエレメントのsrc属...続きを読む

Qtxtの中身を表示する方法教えてください!(javaスクリプト?)

デスクトップに置いてあるひとつのフォルダに、A.htmlというファイルと、B.txtというファイルがあります。
A.htmlをブラウザ(IE)で開いたとき、B.txtの中に書いてある文章をまるまる表示させるには、
どのようにすればいいでしょうか?

ネット上でいろいろ調べたところ、http://questionbox.jp.msn.com/qa3189160.htmlの質問にイメージが近かったのですが、
読み込むファイルはjsじゃないですし、中身を変更したくない(↑の質問のように、”var data = [・・・”といった書き換えをしたくない)のです・・・。

htmlファイルも、txtファイルも、サーバーには送りません。
ネットに繋がっていないパソコンでだけ使います。

よろしければ、サンプルプログラムを書いていただけると助かります。
本当に困っております、どうぞよろしくお願いいたします!

Aベストアンサー

Ajaxを使ってtxtファイルを読み込めばいいはずですが、Ajaxをご自分で実装されるとなると面倒だと思います。
一番手っ取り早い方法としては、jQuery(http://jquery.com/)などのAjaxライブラリを使用することです。

以下、jQueryを使用してtxtファイルを読み込むサンプルです。

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html lang="ja">
<head>
<meta http-equiv="content-type" content="text/html; charset=utf-8">
<meta http-equiv="content-style-type" content="text/css">
<meta http-equiv="content-script-type" content="text/javascript">
<script type="text/javascript" src="jquery-1.3.2.js"></script>

<script type="text/javascript">
<!--
$(document).ready(function() {
$("#container").load("B.txt");
});
//-->
</script>

</head>
<body>

<!-- テキストを表示する部分 -->
<div id="container"></div>

</body>
</html>

Ajaxを使ってtxtファイルを読み込めばいいはずですが、Ajaxをご自分で実装されるとなると面倒だと思います。
一番手っ取り早い方法としては、jQuery(http://jquery.com/)などのAjaxライブラリを使用することです。

以下、jQueryを使用してtxtファイルを読み込むサンプルです。

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html lang="ja">
<head>
<meta http-equiv="content-type" content="text/html; charset=utf-8">
<meta http-equiv="content-style-type" content="text/c...続きを読む

QHTMLからフォルダを開きたい

いつも大変お世話になります<(_ _)>

Webサーバー上にあるWebページ(HTML)の中に、ローカルPCのフォルダを開くリンクを付けたいのですが、
<a href="file://c:\windows">OPEN</a>
としても、何も反応しません。

いろいろ調べたのですが、上記の方法しか見あたりません。

なお、ブラウザのアドレス欄に file://c:\windows と入力すると、フォルダの内容が表示されます。
※Firefoxだと、ファイルの一覧になりますが・・・

何か環境によって挙動が異なるのでしょうか?
それとも、セキュリティ上の観点から最近じゃ出来なくなっているのでしょうか?

是非ともお助け下さい。宜しくお願い致します。

Aベストアンサー

file:///C:/windows/
/は三つでは・・・
 IEの場合はエクスプローラ(ファイルマネージャ)が開くような・・・
 IEはファイルマネージャーと一体のブラウザなので・・・

★実は、ローカルサーバーが必要です。
 apacheでも何でも良いので、WEBデータの入っているフォルダーを
<VIRTUALHOST 127.0.0.1>
C:\Document and settings\my document\web
 とかに指定して、Windowsのhostsファイルで、適当なサーバー名を指定しておきます。
myLocalhost 127.0.0.1
とか・・・

 そうすると
http://myLoclahost/
 で開けます。

 

QCGIでHTMLファイルのPHP部分を読み込むには

CGI(hoge.cgi)でHTML形式のテンプレートを読み込んでページを表示させています。
テンプレートファイル(form.html)にPHPを記述してCGIを実行するとテンプレートファイルに記述したPHPの部分が表示されません。

サーバーのPHPのバージョンはPHP5.5(CGI版)です。

ページを呼び出すURLはhttp://example.com/hoge.cgiです。
htmlの拡張子のままPHPを実行することで解決するのかと思い.htaccessに
AddHandler php5.5-script .htm .html
を記述しましたが、状況は変わりませんでした。
※サーバーの仕様上、AddType application/x-httpd-php .php .htmlでは動作しません。

CGIで呼び出したHTMLファイル上のPHPを読み込む(実行)させるにはどうしたらいいのでしょうか?

お分かりの方、ご教授願います。

Aベストアンサー

WEBサーバでは、CGIの出力結果をHTMLと判断するので
CGIによって「PHPのPGの内容」を出力してもWEBサーバではHTMLとしか解釈されません。

また、AddTypeの設定を行ったとしても、Webサーバで呼び出しているのはhoge.cgiなので
Webサーバは出力内容がPHPだとはこれっぽっちも認識していません。

PHPでどういう処理を行おうとされているかわかりませんが、
対応方法としては、以下の方法が考えられます(他にもあるとは思いますが)
・テンプレートの呼び出しをCGIからPHPに変更する。
 ※PHPのテンプレートエンジン「Smarty」などを利用するのも可
・HTML上のPHP部分の出力をCGI側で処理する。
 ※読み込むHTML上にキーワードを設置し、CGI側でキーワードを読み込んで処理を実行など
・共通の画面表示などであればJavaScriptなどでも対応できるかと・・・・
 ※後々変更が発生した場合は一番楽かも

PHPで何を行っているかがわからないため、一般的な対応方法を書きました。
どういう処理を行っているか補足いただければ、アドバイスはできるかと思います。

WEBサーバでは、CGIの出力結果をHTMLと判断するので
CGIによって「PHPのPGの内容」を出力してもWEBサーバではHTMLとしか解釈されません。

また、AddTypeの設定を行ったとしても、Webサーバで呼び出しているのはhoge.cgiなので
Webサーバは出力内容がPHPだとはこれっぽっちも認識していません。

PHPでどういう処理を行おうとされているかわかりませんが、
対応方法としては、以下の方法が考えられます(他にもあるとは思いますが)
・テンプレートの呼び出しをCGIからPHPに変更する。
 ※PHPのテンプレートエンジン...続きを読む


人気Q&Aランキング