- ベストアンサー
フォームを機能させるには?
htmlタグでメッセージの送信フォームを 作ったのですが、これを機能させる タグの組み方が分かりません。 フォームにメッセージが入力され 送信ボタンを押したとき、 送信完了画面が表示させて、 指定のテキストファイルに、書き込みするように、 したいのですが、どうタグを組めばよいのでしょうか?
- みんなの回答 (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;
その他の回答 (2)
- めとろいと(@naktak)
- ベストアンサー率36% (785/2139)
HTMLだけじゃどう転んでも不可能です。 フォーム(POST送信、GET送信)を受信し、情報を取得出来る スクリプト言語を利用しなければなりません。 一番聞いた事があるのはCGIではと思います(CGI自体は言語ではありませんが)。 ファイル作成処理については、どの言語を選択したとしても 可能だと思います。 ASP, CGI, PHP, Ajaxあたりで検索してみて下さい。
補足
検索してもよく分からなかったから質問しているのですが・・・。
>送信完了画面が表示させて、 これは別なhtmlファイルをつくってください >指定のテキストファイルに、書き込みする これはHTMLの範囲外です。別途CやPerlといった言語でCGIを利用したプログラムを作る必要があります #僕はそのプログラムが作れません(汗
お礼
今度参考にしてフォームを作ってみます。
補足
htmlフォームを作るのは簡単ですが、 CGIの組み方は複雑ですね・・・。