• ベストアンサー

フォームを機能させるには?

 htmlタグでメッセージの送信フォームを 作ったのですが、これを機能させる タグの組み方が分かりません。  フォームにメッセージが入力され 送信ボタンを押したとき、 送信完了画面が表示させて、 指定のテキストファイルに、書き込みするように、 したいのですが、どうタグを組めばよいのでしょうか?

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

  • ベストアンサー
noname#20964
noname#20964
回答No.3

一番単純で誰にでも解りそうな例はこんな感じじゃないでしょうか。 フォーム(test.html) <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"> <html lang="ja"> <head> <meta http-equiv="Content-Type" content="text/html; charset=EUC-JP"> <title>送信</title> </head> <body> <form action="./cgi-bin/test.cgi" method="post"> <textarea name="mess"></textarea> <input type="submit" value="送信"> </form> </body> </html> Perl(test.cgi) #!/usr/local/bin/perl #この部分の詳細はhttp://www.futomi.com/lecture/form/cgi-pm.htmlで見ることができます。 use CGI; $q = new CGI; $text = $q->param('mess'); #ファイル操作http://perl.misty.ne.jp/11.html#a読み出して追加して書きこむ。 #読み出し open (DATA, "mess/mess.txt"); @_ = <DATA>; close (DATA); #追加 @_=(@_,$text); #書き込み。この部分はもっと工夫が必要です。http://www.kent-web.com/bbs/index.htmlの掲示板を例にして変更すると良いです。長くなります。 open (DATA, ">mess/mess.txt"); print DATA @_; close (DATA); #HTMLを書き出す。 print "Content-type: text/html\n"; print "\n"; print "<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.0 Transitional//EN\">\n"; print "<html lang=\"ja\">\n"; print "<head>\n"; print "<meta http-equiv=\"refresh\" content=\"10; url=../index.html\">\n"; print "<meta http-equiv=\"Content-Type\" content=\"text/html; charset=EUC-JP\">\n"; print "<title>送信完了画面</title>\n"; print "</head>\n"; print "<body>\n"; print "送信が完了しました。<a href=\"../index.html\">10後に移動します。移動しない場合はここをクリック</a>\n"; print "</body>\n"; exit;

noname#50759
質問者

お礼

今度参考にしてフォームを作ってみます。

noname#50759
質問者

補足

htmlフォームを作るのは簡単ですが、 CGIの組み方は複雑ですね・・・。

その他の回答 (2)

回答No.2

HTMLだけじゃどう転んでも不可能です。 フォーム(POST送信、GET送信)を受信し、情報を取得出来る スクリプト言語を利用しなければなりません。 一番聞いた事があるのはCGIではと思います(CGI自体は言語ではありませんが)。 ファイル作成処理については、どの言語を選択したとしても 可能だと思います。 ASP, CGI, PHP, Ajaxあたりで検索してみて下さい。

noname#50759
質問者

補足

検索してもよく分からなかったから質問しているのですが・・・。

noname#20377
noname#20377
回答No.1

>送信完了画面が表示させて、 これは別なhtmlファイルをつくってください >指定のテキストファイルに、書き込みする これはHTMLの範囲外です。別途CやPerlといった言語でCGIを利用したプログラムを作る必要があります #僕はそのプログラムが作れません(汗