このカテゴリーに質問していいのかどうかさえよくわからないのですが…。
ホームページ上にハンドルネーム、性別、メールアドレス、意見などを記入してもらえるようなフォームを作り、メールで受信したいと考えています。しかし、どのようにしたらいいのか皆目見当がつきません。どのようなタグを書けばいいのか、特別なソフトが必要なのか…。ちなみに今はwindows付属のFrontPageExpressを使っていますが、このソフトでそのようなことはできるのでしょうか。
また、送信ボタンの作り方や信後に表示される「ありがとうございます」のようなページへのリンクの仕方もよくわかりません。
どこかに初心者向けの解説ページなどあるでしょうか。
「フォーム」で検索してみたのですが、よくわかりません。
できれば小学生にもわかるように説明していただけると嬉しいのですが…。

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

A 回答 (4件)

ここのURLなんか割と分かりやすいかも?


しかしdanyさんのおっしゃるように、
CGIはある意味専門的な分野です。
何かしらのプログラムを勉強したことがないといきなりは出来ません。
CGIは、もし失敗すると、プロバイダのサーバーを壊してしまう可能性もあるんですよ。
それにプロバイダで許可していない言語を使うとまず使えませんし。
(CGIと一口に言っても、Perl、PHPなど結構言語の種類があります。
それを単独で使うかHTMLと混ぜるかでもやっぱり違いますしね)
言い方は変ですが、プログラムが出来るだけで仕事になるのですから、
フォームを作るのは実はそれなりの専門職なんですよ。

だからといって、業者に頼め!と言っているのではないです。
たとえば絵で説明すると、
世の中に高価なドローソフト、フォトレタッチソフトはたくさんありますが、
フリーウェアだけで市販の素材集よりも上手な絵をかける人もいますよね。
ただし、鉛筆で上手な絵がかける人とか、塗り絵が上手な人とかでないと、
多分、高価なソフトがあっても上手にかけませんよね。
なんだか分かりにくい例えですが、
基礎さえあれば初心者でも全然OKですが、
基礎が無い場合は基礎を作る必要がある、
と思うのです。
HTMLだって立派なプログラムですから、
HTMLタグを知っていればCGIだってスグに覚えられますよ。
がんばってくださいね。

参考URL:http://hp-design.net/html/exp-ht-mlform.html
    • good
    • 0
この回答へのお礼

わかりやすいたとえをありがとうございました。
前述のとおり、試行作後の末、必要最低限のことは可能になりました。
わからない、わからないと言いながら実際に試行錯誤してみることが理解への早道かもしれませんね。参考URLもよく見てみます。

お礼日時:2001/04/01 22:31

アサヒネットなら、下記URLに詳しくフォームの作り方が書いてありますね。


もう読まれましたか?
(会社のHPはドメイン付き法人契約ですよね?)

ちなみに、プロバイダが違う場合、
「自分のホームページにも応用する」のは結構難しいと思います。
では、がんばってくださいね。

参考URL:http://www.asahi-net.or.jp/homepage/domain/form/ …
    • good
    • 0
この回答へのお礼

肝心のasahi-netのページは未読でした。
ありがとうございました。

お礼日時:2001/04/01 22:28

ennoさんが書いているように、CGIを使うにはいろいろな条件と


知識が必要になってきます。「どのようなソフトが必要なのか」
という程度の知識だと覚えないことはたくさんあります。
ので、ここではとても教えきれません。^^;

素直にCGI関係の本を買うことをおすすめします。
仕事であればなおさら「自分で調べる」でないと。
    • good
    • 0
この回答へのお礼

あちこちのページを見ながら、何とか必要最低限のことは可能になりました。
ありがとうございました。

お礼日時:2001/04/01 22:27

まずあなたがお使いのプロバイダを教えてください。



フォームは、CGIというプログラムを利用して作るので、
HTML作成ソフト(フロントページなど)だけでは作れません。
基本的に、ワードパットやメモ帳を使って、
長い英語っぽい文章(プログラム)を書かなければなりません。
この文章の書き方が分からない人は、
専門書を買って来たり、CGIを説明しているホームページを探したりして、
そこに書いてあるプログラムをコピーして、
自分のページに貼り付けて使うことも可能です。
さらに、フォームの送信ボタンを押すとあなたの元に届くメールは、
英語のようなものです。
相手が日本語で記入した文字は暗号のようになってしまいます。
この英語や暗号を日本語に変換するプログラムも別に必要になります。

また、CGIプログラムとは、プロバイダととても関係が深いので、
プロバイダが使ってもいいよといっていないと使えないし、
使用許可が出ていてもいろいろな制約がある場合があるので、
まずはプロバイダを言っていただきたいのです。
運がよければ、あなたのプロバイダで、
無料でフォームプログラムと暗号解読プログラムを配っていて、
さらに載せ方まで詳しく解説しているかもしれません。
もしよければ、あなたのプロバイダのホームページを見てみましょう。
運が悪いと、使えません。
とはいえ、フォームが使える無料レンタルスペースも探せばありますので、
安心してください。
まずは環境を教えてください。

この回答への補足

 さっそくのご回答ありがとうございます。
 細かく話すと長くなってしまうのですが…。職場のプロバイダはasahi-netで、自分のプロバイダはodnです(自分のHPはgeocities)。
 職場のHPに前任者が作ったフォームがあります。内容が変わるたびにそのタグを書き換えて使っていました(実はこれも確認ページが機能しなくなってしまったのですが-確認内容が表示されない。でも届くメールには必要事項が記入されている)。
 今回、新たに別のフォームを作りたいと思い、もともとのフォームを修正して別ファイルとして保存し、実験してみたところ、確認ページや「ありがとう」ページはもともとのフォームと同じところに行ってしまうし、届いたメールは文字化けしていました(文字化け修復サイトで修復したら読めましたが)。
 そこで、今回、ゼロから新たなフォームを作ろうと思い立ちました。確認ページや「ありがとう」ページはすっ飛ばしてもいいと思っているのですが。
 メール画面が立ち上がるようにしてもことは足りるのですが、せっかくならフォームを使ってみたいと思うのです。もしやり方がわかれば自分のHPでも応用できるかなと思いまして。

補足日時:2001/03/31 16:01
    • good
    • 0

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

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

Qアンケートフォーム複数ページ間のテキストフォームデータのの受け渡し

こんにちわ、1ページ目の名前のテキストフォームに入力した内容のデータと2ページ目のメールアドレスのテキストフォームに入力したデータをのデータを確認画面で表示させたいのですがうまくできません。わらをもすがる思いでここに書きました。
1ページ目
名前を入力
2ページ目
メールアドレスを入力
3ページ目
確認画面
4ページ目
サンクスページ

わたしが書いたソースは以下のとおりです。。
どうしてもデータをうまく確認画面にもっていくことができませんよろしければ詳しい方、アドバイスをお願いいたします。よろしくお願いします!
※ここの文字数制限が800文字なのでかなり省略化しています。

if ($FORM{'action'} eq "page2") {&page2;}
elsif ($FORM{'action'} eq "") {&page1;}
elsif ($FORM{'action'} eq "kakunin") {&kakunin;}
elsif ($FORM{'action'} eq "kanryou") {&kanryou;}
#1ページ目
sub page1{
print <<"EOF";
Content-type: text/html
<html>
<head>
<meta content="text/html; charset=shift_jis">
</head>
<body>
<form method="post" action="$script">
□お名前(漢字)<br>
<input type="text" size="12" name="name1" value="$FORM{'name1'}" >
<input type="hidden" name="name1" value="$name1">
<input type="hidden" name="action" value="page2">
<input type="submit" value="次へ">
</form>
</body>
</html>
EOF
exit;
}
#2ページ目
sub page2{
文字数制限のため省略
メールアドレス
}
#■フォームのデコード処理
sub decode{
文字数制限のため省略
}
#確認画面
sub kakunin{
文字数制限のため省略
}
#送信完了画面
sub kanryou{
文字数制限のため省略
}

こんにちわ、1ページ目の名前のテキストフォームに入力した内容のデータと2ページ目のメールアドレスのテキストフォームに入力したデータをのデータを確認画面で表示させたいのですがうまくできません。わらをもすがる思いでここに書きました。
1ページ目
名前を入力
2ページ目
メールアドレスを入力
3ページ目
確認画面
4ページ目
サンクスページ

わたしが書いたソースは以下のとおりです。。
どうしてもデータをうまく確認画面にもっていくことができませんよろしければ詳しい方、アドバイスをお願...続きを読む

Aベストアンサー

print <<"EOF";
Content-type: text/html
の後に空の改行が必要です
それと$FORM{ }ですがちゃんとform parseしてるでしょうか
時々<form>からの値が自動的に$FORM{ }に入ると勘違いしている人がいますがPerlでは自分でやらないといけません。PHPならこの辺は自動でやってくれるので便利なのですが。

Qアンケートフォームで前のページへ戻るをクリックしてもテキストフィールドの値が消えないようにするには。

こんにちわ。よくある、アンケートフォームのcookieの処理だと思うんですけど、名前とか住所とかを入力したあと次ページで確認画面がでてきて、修正したい場合は戻って修正するってやつありますよね。

そのときに「戻る」を押すと、テキストフィールドに入力した値が全部クリアされてしまうのですが、全部クリアされないように処理するにはどうしたらいいのでしょうか?javascriptのhistryback()を使えばできるんですけど、携帯なんでjavascriptは使えないんで、cookieでやると思うんですけど、どうやったらいいのかよくわかりません。。。

簡単でいいので処理のしかたをご存知のかたがいらしたらぜひともご教授ください。よろしくお願いします。

Aベストアンサー

> それはHTMLベースでできるのですか?

そのアンケートフォームのCGIスクリプトで対応します。

> なにかjavascriptのhistryback()みたいですね。

ブラウザにとっては「戻る」のではなく「進む」です。その進んだ先に、「入力済みデータが入ったフォーム」をサーバー側で用意しておく、という方法です。

> アンケートや、ショッピングの確認画面のソースはわたしも見ましたが、
> ほとんどが、histryback()かhostrygo(-1)でした。

そのようなフォームが、戻ったときにクリアされてしまうフォームですよね。
よほど小規模なものや個人のページは別として、いまどきは私はあまり見ませんが…。

それはいいとして、スクリプトの方は難しくありません。
私の知ってるやり方というより、ごく一般的に、普通はこうやる、というものです。
以下Perlという前提です。

受け取ったデータが $FORM{'name'} とか $FORM{'address'} に入っているとします。
で、入力フォームを表示する部分は、たいて以下のような感じになっていますよね?

print <<"EOM";
お名前 <input type="text" name="name">
ご住所 <input type="text" name="address">

EOM

これを以下のように変えるだけです。

print <<"EOM";
お名前 <input type="text" name="name" value="$FORM{'name'}">
ご住所 <input type="text" name="address" value="$FORM{'address'}">

EOM

これで、受け取ったデータをそのままデフォルト表示するようになります。

次に確認画面ですが、普通、確認画面には元々
<input type="hidden" name="name" value="$FORM{'name'}">
というようなものが入っているはずです。
なので、戻るためのボタンを追加するだけでいいと思います。
呼ばれたスクリプトが、押されたのが「送信」なのか「戻る」なのかを判別できればいいわけですが、一番簡単なのは、submitボタンを、
<input type="submit" name="mode.input_form" value="戻る">
などというように書いておけば、あとはスクリプトの方で、受け取ったデータの中に「mode.input_form」という名前のフィールドが存在したら、戻るボタンが押されたと判断できます。その場合は、そのまま入力フォーム表示処理を行えば良いだけです。

なお、$FORM{'name'}のデータはエスケープ処理などのチェックが別途必要です。

> それはHTMLベースでできるのですか?

そのアンケートフォームのCGIスクリプトで対応します。

> なにかjavascriptのhistryback()みたいですね。

ブラウザにとっては「戻る」のではなく「進む」です。その進んだ先に、「入力済みデータが入ったフォーム」をサーバー側で用意しておく、という方法です。

> アンケートや、ショッピングの確認画面のソースはわたしも見ましたが、
> ほとんどが、histryback()かhostrygo(-1)でした。

そのようなフォームが、戻ったときにクリアされてしまうフォームで...続きを読む

Q注文フォームページを作る際…

コーディングなどの勉強を始めて3ヶ月ぐらいのものです。

小さい会社で働いているのですが、自社HP注文フォームページを作りたいのです。
既にあるフォームページがありますので、それを複製して内容を変更すればいいんじゃないかと
考えておりますが安易すぎますか?

CGIというものが調べたのですが理解できなくて既にある.cgiがパスを見てもどこにあるのか分からず作業が進めずにいます。

"../../cgi/cgi2/oo.cgi"

2階層上にあるということですよね?
しかし2階層上のフォルダにcgiというフォルダがないのです。

そんな事見なきゃ分からない質問だと思います。すみません。

質問をまとめますと、

既にあるフォームを複製して内容を変更し新しく作る際の起きるであろう問題点。
そもそもやめた方がいいのか、他に素人の私でもできるフォーム作成方法がありましたら
教えて頂けないでしょうか。
よろしくお願いします。

Aベストアンサー

>既にあるフォームを複製して内容を変更し新しく作る際の起きるであろう問題点。

・入力項目数の増減にどう対応するのか?
・変数名を勝手に変更してきちんと動かなくなるかも。
・フォームの内容をどうするのか(メールで送るとかDBに格納するとか)が不明ですが、そのあたりの動作を既存の物とどう分離するのか。
・「Thankyou」ページは同じでいいのか。
などなど。他にもいろいろ。

>他に素人の私でもできるフォーム作成方法がありましたら教えて頂けないでしょうか。

既存の物がベースとして良さそうなら、そのソースコードを徹底的に読むのが手っ取り早いと思いますよ。
当然そのcgiで使われている言語(perlとかshとか)の参考書と首っ引きで。

私も最初は数千行のperlのコードを追いかけてカスタマイズしましたが、エンジニアになった今でもその時の経験は役に立っています。
(まぁ15年以上前には参考書も先人も身近にないからそうするしかなかったんですけどね)

Qフォームの内容を確認するページをはさむ方法

htmlのフォームに記入してもらった内容を、そのままデータに書き込むcgiに送信するのではなく、一回内容を表示した確認cgiをはさみたいのですが、どうすればよいのでしょうか。
とりあえず、今の状態は、htmlファイルから読み込むデータを"name","mail","coment"の3つとしてます。

enquete.htmlファイルの一部:
<FORM method="POST" action="enquete.cgi">
<TABLE>
<TR>
<TD>名前</TD>
<TD><INPUT type="text" name="name"></TD>
<TD>メールアドレス</TD>
<TD><INPUT type="text" name="mail"></TD>
<TD>コメント</TD>
<TD><INPUT type="text" name="coment"></TD>
</TR>
<INPUT type="submit" value=" 送 る ">   
<INPUT type="reset" value="やり直す">

のような感じです。
これに確認cgiをはさんで、

enquete.html"確認ページへ"
→kakunin.cgi"送る"
→enquete.cgi"戻る"

みたいな構成にしたいのですが、kakunin.cgiの実装の仕方を教えてください。また、それにともない、直す箇所も教えてください。
おねがいします。

htmlのフォームに記入してもらった内容を、そのままデータに書き込むcgiに送信するのではなく、一回内容を表示した確認cgiをはさみたいのですが、どうすればよいのでしょうか。
とりあえず、今の状態は、htmlファイルから読み込むデータを"name","mail","coment"の3つとしてます。

enquete.htmlファイルの一部:
<FORM method="POST" action="enquete.cgi">
<TABLE>
<TR>
<TD>名前</TD>
<TD><INPUT type="text" name="name"></TD>
<TD>メールアドレス</TD>
<TD><INPUT type="text" name="mail"></...続きを読む

Aベストアンサー

#!C:/Perl/bin/perl
read(STDIN,$buffer,$ENV{'CONTENT_LENGTH'});
@pairs=split(/&/,$buffer);
foreach $pair (@pairs){
($name,$value) = split(/=/,$pair);
$value =~ tr/+/ /;
$value =~ s/%(..)/pack("C",hex($1))/eg;
$cgi{$name} = $value;
}
print "Conten-type: text/html;charset=\"shift_jis\"\n\n";
print "<html>\n";
print "<b>確認<br>\n";
print "<TABLE border>\n";
print "<TR>\n";
print "<TD>名前</TD>\n";
print "<TD>$cgi{'name'}</TD>\n";
print "<tr><TD>メールアドレス</TD>\n";
print "<TD>$cgi{'mail'}</TD>\n";
print "<tr><TD>コメント</TD>\n";
print "<TD>$cgi{'coment'}</TD>\n";
print "</TR>\n";
print "</TABLE>\n";

print <<"AAA";
<form action = "okuru.cgi" method="post">
<INPUT type="hidden" name="name" value="$cgi{'name'}">
<INPUT type="hidden" name="mail" value="$cgi{'mail'}">   
<INPUT type="hidden" name="coment" value="$cgi{'coment'}">
<input type="submit" value="送信">
</form>
AAA

print "</BODY></HTML>\n";

こんな感じで入力したデータを確認できますよ。これを
kakunin.cgiとして試してみて下さい。

#!C:/Perl/bin/perl
read(STDIN,$buffer,$ENV{'CONTENT_LENGTH'});
@pairs=split(/&/,$buffer);
foreach $pair (@pairs){
($name,$value) = split(/=/,$pair);
$value =~ tr/+/ /;
$value =~ s/%(..)/pack("C",hex($1))/eg;
$cgi{$name} = $value;
}
print "Conten-type: text/html;charset=\"shift_jis\"\n\n";
print "<html>\n";
print "<b>確認<br>\n";
print "<TABLE border>\n";
print "<TR>\n";
print "<TD>名前</TD>\n";
print "<TD>$cgi{'name'}</TD>\n";
print "<tr><TD>メールアドレス<...続きを読む

Q携帯用ホームページでの送信フォームが作動しません

携帯用に作ったホームページで、アンケートなどのページを作ったのですが、送信ボタンを押しても、データが送信されません。
今の環境は下記のとおりです。

使用ソフト/ホームページビルダー6
ターゲット/iモード、J-SKY
サーバー/ニフティー

ニフティーで用意されているメールデコードという送信フォームを利用しているのですが、そもそもこれが携帯用に作られていないんでしょうか?
それとも何かタグを追加すれば携帯電話からもそのページを開いて、送信できるんでしょうか?

あまりホームページ作成に詳しい訳ではありません。
何か情報が不足しているようでしたら補足いたします。

どなたかご存じの方、いらっしゃいましたらぜひ教えてください。

Aベストアンサー

通常のformで送れますよ!!
(J-skyのmethodはgetで無いと使えない場合があります。)
下記にformの例を記載しますので参考にして下さい。
(自分の物と違う所が無いか確認して下さい。)

<form action="http://????.com/???.cgi" method="GET">
<input type="hidden" name="action" value="touroku">
<hr>
メールアドレス<br><input name="touroku_mail" istyle="3" size="10">@<select name="addd" size="1">
<option value="docomo.ne.jp">docomo.ne.jp</option>
<option value="jp-d.ne.jp">jp-d.ne.jp</option>
<option value="jp-h.ne.jp">jp-h.ne.jp</option>
<option value="jp-t.ne.jp">jp-t.ne.jp</option>
<option value="jp-r.ne.jp">jp-r.ne.jp</option>
<option value="jp-c.ne.jp">jp-c.ne.jp</option>
<option value="jp-k.ne.jp">jp-k.ne.jp</option>
<option value="jp-s.ne.jp">jp-s.ne.jp</option>
<option value="jp-n.ne.jp">jp-n.ne.jp</option>
<option value="jp-q.ne.jp">jp-q.ne.jp</option>
<option value="email.sky.tdp.ne.jp">email.sky.tdp.ne.jp</option>
</select>
<hr>
<input type="hidden" name="touroku" value="touroku">
<input type="submit" value="決定">
</form>

っとこんな感じです.....

結局methodの指定とsubmitが有るかが問題となります。

通常のformで送れますよ!!
(J-skyのmethodはgetで無いと使えない場合があります。)
下記にformの例を記載しますので参考にして下さい。
(自分の物と違う所が無いか確認して下さい。)

<form action="http://????.com/???.cgi" method="GET">
<input type="hidden" name="action" value="touroku">
<hr>
メールアドレス<br><input name="touroku_mail" istyle="3" size="10">@<select name="addd" size="1">
<option value="docomo.ne.jp">docomo.ne.jp</option>
<option value="jp-d.ne.jp">jp-d.ne.jp<...続きを読む


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

おすすめ情報