こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

解決済みの質問

フォームの送信が働かない

<form action="mailto:******@hotmail.com" method="post" enctype="multipart/form-data">
<p>
<label for="nm">お名前:</label>
<input type="text" name="namae" id="nm"><br>
<label for="ma">メール:</label>
<input type="text" name="email" id="ma">
</p>
<p>
<input type="radio" name="sex" value="male" id="sm">
<label for="sm">男性</label> 
<input type="radio" name="sex" value="female" id="sf">
<label for="sf">女性</label>
</p>
<p>
<input type="submit" value="送信">
<input type="reset" value="リセット">
</p>
</form>
で内容を送信しても働かないのですがなぜなのかわかりません。(mailアドレスは実在の物を入れてためしています。)

それともしよければCGIの時に
<form action="/cgi-bin/formmail.cgi" method="post">というのがどのように使うのか教えて下さい。
これはこのままサーバーにいれたらいいのですか?
それとも契約をしないといけないとか設定をしないといけないとかあるのでしょうか?
複雑であれば何か調べられる情報を教えて下さい。

お時間のある方是非教えて下さい。

投稿日時 - 2004-08-12 21:18:01

QNo.960104

困ってます

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

 う~ん。フォームのAction=Mailtoはだねぇ。よほど運が良くないと使えないのだよ。かなりの数の環境で動作しないと報告されている。
 で、ではどうすれば良いかだが、ここで入力してもらった内容をメールを送信するCGIに渡して(これをポストという。解説は後ほど。)CGIが、そのデータを受け取ってメール送信を行う、という形式にするしか、確実に動作させる手立てはない。ところで、この「データを受け取ってメールを送信するCGI」というのは、探せばどこにでも転がっているのだが、君が使っているWebサーバで使えるかどうかは分からない。これはWebサーバの人に問い合わせて欲しい。

解説:HTTPの基礎
 HTTPとは、クライアント(主にブラウザ)がWebサーバに対して「ページちょうだい」というと、Webサーバが「はいこれだよ」と返してくれるシステムだ。
 で、クライアント→サーバのデータをHTTPリクエスト、サーバ→クライアントのデータをHTTPレスポンスという。さらにHTTPリクエストには複数の種類があり、これをメソッドというのだが、主に使われるのは「ページちょうだい」のGETメソッドと「こんなデータがありますけど」とデータを送信するPOSTメソッドの2つだけだ。
 ところで、「ページちょうだい」はそのまま該当するページを返してあげれば良い(つまりWebサーバのみで完結する)のだが、データをPOSTした場合、「ページがそのデータを受け取って何かする」必要がある。つまり、ページ自身が何かをするというページを作成する必要があり、Webサーバによってそれが使えるかどうかが決まるので、これに関してはWebサーバ管理者に問い合わせてもらうしかない。

 あまり多くの文章は入れられないのでだいぶはしょって説明したが、HTTPの基礎とHTMLの基礎はサイト構築者には必須なので、色々勉強してみよう。

投稿日時 - 2004-08-12 21:58:42

お礼

送れないので一日考えていたのでとても有り難いお答えでした。有り難うございます。
でも2冊の本でこれで働くように書いてあるのは納得いかないです。
結局サーバーに連絡しないといけないのですね。
私はデザイナーから入っているのでまだまだコードの勉強が必要そうです。
有り難うございました。

投稿日時 - 2004-08-12 22:13:05

ANo.1

このQ&Aは役に立ちましたか?

1人が「このQ&Aが役に立った」と投票しています

回答(1)

あなたにオススメの質問