初めまして。
早速なのですが、
フォームから文章を書いて送信すると、xxx.cgiで出力されますよね
これを、xxx.htmlで出力させることは可能なのでしょうか?

何もかもが初心者なので、宜しくお願い致します。

このQ&Aに関連する最新のQ&A

A 回答 (4件)

お礼拝見しました。


私が利用していたのは、参考URLにあるゲストブックというやつです。これを改造していました。
Matt's Script Archiveという古くからある有名なサイトです。何しろ設置したのが1996年で、当時は日本語が使えるCGIなんて配布されてませんでしたから。
という余談はともかく、ご覧の通り英語です。
ですが、guestbook.zip (9.3K)あたりをダウンロードしてソースを見れば、仕組みはわかるのではないかと。その下にあるWorkingDemoが動いていないみたいなので、残念ですが。
自力でコーディングされるのであれば、このサンプルの仕組みを見ればイメージはできると思うのですが、日本語の出来合いのものを探していらっしゃるならごめんなさい。

参考URL:http://worldwidemart.com/scripts/guestbook.shtml
    • good
    • 0
この回答へのお礼

頑張ってみます。英語はエキサイト翻訳ページで何とか見ながらできるかどうかわかりませんが、チャレンジです。英語だからといって「やーめた」とかいってたら
何となく負けた気がするので(笑)・・・。
それでもどうにもならない場合は、今度は自分でもう一度探してみます。
こんな事につきあっていただいてありがとうございます。
また何かありましたら、宜しくお願い致します。

お礼日時:2001/03/07 21:33

ふとお礼を見ていて気づいたんですが。


>自分のHPに日記みたいなものを載せようかと思ってまして…

もし、日記を書くのがnew-godさんお一人でいいのであれば、全然問題はないと思います。cgiの機能として、diary.htmlに最新の書き込み分を追加していく(cgiでdiary.htmlを直接編集する)形式にすればいいわけですから。

私が初期に使っていた掲示板も、そういう仕組みでした。書き込み画面が別にあって、そこから呼ばれるcgiはhtmlにコメントを追記する形式だったわけです。
今でもそういうのがあるんじゃないですかね。

こういうのだと、見る部分はhtmlですから、問題ありません。問題があるとすれば、書き込みが入るたびにファイルが大きくなる一方だってことでしょうか。どっかで自動分割する機能とかが無いと不便ですね。
    • good
    • 0
この回答へのお礼

返事が大変遅くなりました。ちょっと私用で出かけていたもので、すいません。

日記は私一人が書きます。
そういう掲示板の形式を取り扱ってるページって今もあるものなんでしょうか?
いろいろと探してはいるんですが、なかなかみつからなくって・・・。
もし、今でもご存じなのであれば、教えていただけないでしょうか?
大変恐縮なのですが、宜しくお願い致します。

お礼日時:2001/03/07 20:22

んと、元質問に対する回答ではなく、



>こういったcgiってどこかにフリーで出回ってないものなんでしょうか?
に対してですが、

こういったCGIはわりとどこにでもフリーで出回っているものだと思います。
フリーのCGIが出回っているサイトを御存知無いのであれば、「サンプル付CGI検索サイト」を紹介しておきます。
尚、要望に合うモノが見つからない場合は、一番近いモノを改造してしまうのが近道です。

参考URL:http://hyne.bird.to/bcp/
    • good
    • 0
この回答へのお礼

ありがとうございます。早速リンクにジャンプしてみます。
初めてこういった掲示板を利用したのですが、みなさんご親切で
本当にいい勉強になりますm(_ _)m。
また何かありましたら宜しくお願い致します。

お礼日時:2001/02/28 23:50

やり方としては2通り考えられます。



1.「.html」の拡張子でもCGIが動くようにサーバの設定を変更してしまう
 同じディレクトリに「.html」の拡張子がついたファイルと「.cgi」の拡張子がついたファイルが混在している場合に、普通は「.html」はあくまで普通のHTMLファイルとして、また「.cgi」はCGIプログラムとして処理されることが多いと思いますが、これに対してサーバの設定を変更して、「.html」の拡張子のファイルもCGIプログラムとして動かしてしまおうというものです。
 ただしこれをやると、当然のことながら同じディレクトリに普通のHTMLファイルは置けなくなりますし、サーバの種類によってはユーザー側で設定をいじれない(=「.htaccess」ファイルが無効化されている)場合も多く、必ず出来るというわけではありません。
 なお具体的なサーバの設定変更方法については、サーバソフトの種類によっても異なるため、ご契約されているプロバイダに問い合わせるのが一番だと思います。

2.CGIプログラムからHTMLファイルを出力してそこにジャンプする
 こちらは、CGIの出力結果を一度ファイルに保存し、その上でその保存したファイルにHTTPヘッダの「Location:」を使ってジャンプする、というものです。
 この方式はサーバの設定を変更しなくて済む分環境を選びませんが、その代わりリンクの指定はあくまで「.cgi」ファイルを指定する必要があるため、結果として「元ファイル→.cgiファイル→.htmlファイル」という二段階ジャンプの形になってしまいます。

ただどちらも、それなりにサーバの設定やCGIプログラムの原理に通じている必要があり、初心者には難しいかもわかりませんね。
    • good
    • 0
この回答へのお礼

ありがとうございます。どのようにしたらできるかということがわかりました(できるかどうかは別として)。自分のHPに日記みたいなものを載せようかと思ってまして、そのときにわざわざFTPで送信しないでもcgiを使えたらと思って投稿しました。それでなおかつxxx.cgiというアドレスを使うより、xxx.htmlにしたいと思っていましたので。こういったcgiってどこかにフリーで出回ってないものなんでしょうか?

お礼日時:2001/02/28 21:27

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

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

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

QCGIで他のCGIの出力を取り込む方法について。

CGIで他のCGIを呼び出し、同じページの一部として出力したいと考えています。
例えば、親のCGIが簡単な機能のCGIをページの一部として出力し、
そのパラメーターを子のCGIに受け渡し呼び出すようなしかけです。
なんかうまい方法ありますか??
あまり急いでいませんが、宜しくお願いします。

Aベストアンサー

use Socket;

ソケット通信を行えば、
パラメータの受け渡し等含めてやりとりできます。
(postでの受け渡しも可能ですし)

ただ、少々実装が面倒かもしれません。

#LWP(lib-www-perl)なども使えるかと思います。
#詳細は参考文献にて。

参考URL:http://member.nifty.ne.jp/hippo2000/perltips/LWP.html

Q外部サーバのxxx.htmlを読み込む方法

毎度お世話になっております。
外部サーバのhtmlを読み込む方法をご教授お願いできないでしょうか?
よろしくお願いします。

Aベストアンサー

私も詳しく知りません。
単に指定URLの内容を持ってくるときには、
LWP::Simpleを使い、postで取得したい場合や、取得に行く時に
UserAgent等を指定したいときは
LWP::UserAgentを使っています。
それぞれGoogle等で検索してみてください。すぐに見つかると思います。

一応参考に
http://homepage3.nifty.com/hippo2000/perltips/LWP/Simple.html
http://homepage3.nifty.com/hippo2000/perltips/LWP/UserAgent.html

Qcgiとhtml

#!/urs/bin/local/perl
use CGI qw(:standard);
use Date::Calc qw(:all);
$year = param('year');
$mon = param('mon');
if ($year or $mon){
#年、月がないとエラー
if (!$year){
&error(100,'年、月を入力して下さい。');
}elsif(!$mon){
&error(110,'年、月を入力して下さい。');
}
#年は1以上、月は、1~12の範囲
#紀元前は計算しない
if($year < 1){
&error(120,'年に誤りがあります。');
}
if($mon < 1 or $mon > 12){
&error(130,'月に誤りがあります。');
}
#カレンダーの計算
$cline = Calendar($year,$mon);
#先頭行と最終行をとる
$cline =~ s/^\n//;
$cline =~ s/\n$//;
#改行区切りで分割
@Cal = split(/\n/,$cline);
#まず、年、月をテーブルに入れる
$CAL.=<<"EOL";
<table border="1">
<tr>
<td colspan="7" align="center">$year年$mon月</td>
</tr>
EOL
#曜日をテーブルに入れる
$CAL.=<<"EOL";
<tr>
<td>日</td>
<td>月</td>
<td>火</td>
<td>水</td>
<td>木</td>
<td>金</td>
<td>土</td>
</tr>
EOL
#日付をテーブルに入れる
for($i=2; $i<=$#Cal; $i++){
$CAL.= <<"EOL";
<tr>
EOL
$shift=3; #1日に3文字文使う
$s = 0;
for ($j=0; $j<7; $j++){
$day = substr($Cal[$i], $s, $shift);
if($day !~ /\d/){
$day = ''; #数字がなければスペース
}else{
$day =~ s/ //g; #余分なスペースをとる
}

$CAL.=<<"EOL";
<td align="right">$day</td>
EOL
$s += $shift #3文字を右へ
$s += 1; #2回目からは、区切り文字も計算
}
$CAL.=<<"EOL";
</tr>
EOL
}
$CAL.=<<"EOL";
</table>
EOL
}
print <<"EOL";
Content-type: txet/html

というプログラムを作ってカレンダーを表示させたいのですが、
HTMLで打つときに
<html>
<head>
<title>カレンダー</title>
</head>
<body>

<from action="report.cgi">
年:<input type="text" size="4" name="year">
月:<input type="text" size="2" name="mon">
<br>
<input type="submit" value="表示">
</from>
<br><br>
$CAL(と入れたのですが、画面に%CALと出るだけでカレンダーが表示されません)
</body>
</html>

何を入れると画面ににきれいにカレンダーが表示されるのでしょうか?

#!/urs/bin/local/perl
use CGI qw(:standard);
use Date::Calc qw(:all);
$year = param('year');
$mon = param('mon');
if ($year or $mon){
#年、月がないとエラー
if (!$year){
&error(100,'年、月を入力して下さい。');
}elsif(!$mon){
&error(110,'年、月を入力して下さい。');
}
#年は1以上、月は、1~12の範囲
#紀元前は計算しない
if($year < 1){
&error(120,'年に誤りがあります。');
}
if($mon < 1 or $mon > 12){
&error(130,'月に誤りがあります。');
}
#カレンダーの計算
...続きを読む

Aベストアンサー

まず、他の方々も言われていたと思いますが。
HTMLで動的な作業をすることはできません。
JavaScript等を使用すれば不可能ではありませんが
今回はCGIを使われていらっしゃるので、HTML上でCGIを使用することはできません。

拡張子を.cgiにし、CGI上で、HTMLを記述するのが最もよいと思います。
document.writeで、CGI拡張子のソースに、HTML記述をすることができます。

QHTMLにCGIを

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

Aベストアンサー

ファイル名だけが問題なら
.htaccess

というファイルを書式にしたがって書いて
設置したら
htmlという拡張子でcgiが動作すると思います。

参考URL:http://www.mikeneko.ne.jp/~lab/web/htaccess/


このカテゴリの人気Q&Aランキング

おすすめ情報