
ホームページ作り初心者です。
くだらない質問かもしれないのですが、行き詰まって悩んでいます…。
どうかよろしくお願い致します。
今、CGIを使ってフォームを作っています。
基本的なフォームでは問題がないので、CGI自体に問題はないと思います。
それが、メールフォームをテーブルで囲まれたデザインにした途端、フォーム内容がうまくメールで取得できなくなりました。
本当なら
「shopname = ○○○○
name = ○○○○
tel = ○○○○
email = ○○○○
question = ○○○○」
と送ってほしいのに、
「shopname =
○○○○
name」
となんとも中途半端な内容が送られてきます…。
テーブルを使ったからCGIがうまく作動しないのか、HTMLがおかしいのか、CGIがおかしいのか、どこがいけないのかわかりません。
アドバイスいただけたら嬉しいです。
宜しくお願い致します。
以下、フォームのHTMLです。
---------------------------------------
<form action="./postmail.cgi" method="post" enctype="text/plain" name="form1" id="form1">
<table width="520" border="0" cellspacing="2" cellpadding="2" bgcolor="#7EBEB6">
<tr>
<td width="152" bgcolor="#FFFFFF" class="style3"><center>
店舗名
</center></td>
<td width="354" bgcolor="#FFFFFF"><input type="text" name="shopname" size="44" />
</td>
</tr>
<tr>
<td width="152" bgcolor="#FFFFFF" class="style3"><center>
ご担当者名
</center></td>
<td width="354" bgcolor="#FFFFFF"><input type="text" name="name" size="44" id="name" />
</td>
</tr>
<tr>
<td width="152" bgcolor="#FFFFFF" class="style3"><center>
お電話番号
</center></td>
<td width="354" bgcolor="#FFFFFF"><input type="text" name="tel" size="44" id="tel" />
</td>
</tr>
<tr>
<td width="152" bgcolor="#FFFFFF" class="style3"><center>
メールアドレス
</center></td>
<td width="354" bgcolor="#FFFFFF"><input type="text" name="email" size="44" id="email" />
</td>
</tr>
<tr>
<td width="152" bgcolor="#FFFFFF" class="style3"><center>
メールアドレス(確認用)
</center></td>
<td width="354" bgcolor="#FFFFFF"><input type="text" name="email2" size="44" id="email2" />
</td>
</tr>
<tr>
<td width="152" bgcolor="#FFFFFF" class="style3"><center>
お問い合わせ内容
</center></td>
<td width="354" bgcolor="#FFFFFF"><textarea name="question" cols="43" rows="7"></textarea></td>
</tr>
</table>
<br />
<input type="submit" name="button" id="button" value="送信" />
<input type="reset" name="button2" id="button2" value="すべてクリア" />
<br />
</form>
No.4ベストアンサー
- 回答日時:
気になった点が2つほど
その1:ソースが見づらい
input 要素が閉じてあるってことは XHTML なんですよね?
だったら見栄え関連はすべてスタイルシートで設定するべきです。
<form action="./postmail.cgi" method="post" enctype="text/plain" name="form1" id="form1">
<table>
<tr>
<th>店舗名</th>
<td><input type="text" name="shopname" /></td>
</tr>
<tr>
<th>ご担当者名</th>
<td><input type="text" name="name" id="name" /></td>
</tr>
<tr>
<th>お電話番号</th>
<td><input type="text" name="tel" id="tel" /></td>
</tr>
<tr>
<th>メールアドレス</th>
<td><input type="text" name="email" id="email" /></td>
</tr>
<tr>
<th>メールアドレス(確認用)</th>
<td><input type="text" name="email2" id="email2" /></td>
</tr>
<tr>
<th>お問い合わせ内容</th>
<td><textarea name="question" cols="43" rows="7"></textarea></td>
</tr>
</table>
<p>
<input type="submit" name="button" id="button" value="送信" />
<input type="reset" name="button2" id="button2" value="すべてクリア" />
</p>
</form>
HTML はここまでシンプルにできます。
あとは CSS で
#form1 table {
border-collapse: collapse;
width:520px;
}
#form1 th,
#form1 td {
width:152px;
border:2px solid #7EBEB6;
font-weight: normal;
padding:2px;
}
#form1 td {
width:354px;
}
input[type="text"] {
width:230px;
}
こんな感じで宜しいのでは?
ソースを見易く書くというのは、コーディング上の記述ミスを劇的に減らすという効果がありますよ。
その2:エンコードタイプが text/plain ?
正直そんなスクリプトは初めてみました。
本当に application/x-www-form-urlencoded じゃないんですね?
エンコードタイプを変更したら、無事に解決できました!!!
が、なぜ「text/plain」だとうまくいかず「application/x-www-form-urlencoded」だと大丈夫なのかは、調べたのですがまだわかっていません。
CSSの使い方に関しても、自分でも気になっていた部分だったので、勉強不足を痛感しました…。
まだまだ課題が山盛りです。
的確なアドバイスをありがとうございました。
今後精進できるよう頑張ります。
No.8
- 回答日時:
終わってないようなので、私がやった確認方法を書いておきます。
<form action="mailto:自分のアドレス" method="post" enctype="text/plain" name="form1" id="form1">
これで、メールフォームを自分のメールアドレスに送れます。
この他、受信データを表示する専用のCGIを用意して、受信データを加工しないで受け取って見たら、データに問題があれば判ります。どちらかというと、こちらの方が良いと思います。
エンコーディングタイプを変更することで解決はできたのですが、アクションに「mailto:」を使うと動かなくなります(涙)
なぜなのか…まだまだ初心者なので課題が沢山残りました。
受信データ表示用の専用のCGIがあるということも初めて知りましたので、今後積極的に利用しようと思います。
ありがとうございました。
No.7
- 回答日時:
すみません。
なぜ?
<form action="http://hpcgi1.nifty.com/Iruka/ENV_FORM.cgi" method="post" name="form1" id="form1">
やはり結果は「Method Not Allowed」でした。
恥ずかしながらフォームを作ったのが初めてで、CGIの仕組みがまだハッキリわかっておりません…。
今後、このような確認方法も含めて、自力で解決できるようになれるよう頑張ります。
ありがとうございました。
No.6
- 回答日時:
No.3 です。
コピーペーストしたら余分な文字が・・
<form action="http://hpcgi1.nifty.com/Iruka/ENV_FORM.cgi" method="post" name="form1" id="form1">
です。
No.5
- 回答日時:
No.3 です。
<form action="http://hpcgi1.nifty.com/Iruka/ENV_FORM.cgi" method="post" name="form1" id="form1">
として御覧なさい。
No.3
- 回答日時:
?と思うところがいくつかありますが、
下記サイトに送信してみてください。
Enviroment Variable and FORM,COOKIE ( http://hpcgi1.nifty.com/Iruka/ENV_FORM.cgi )
<form action="http://hpcgi1.nifty.com/Iruka/ENV_FORM.cgi" method="post" enctype="text/plain" name="form1" id="form1">
データーが渡せていればCGIの問題
「Method Not Allowed」と出ました。
ということはCGIの問題ではないということなのでしょうか(涙)
何か基本的なところが間違っているのか…もう一度色々見直してみます。
ありがとうございました。
No.2
- 回答日時:
POSTされるのはname属性がついた要素だから、
tableが影響してるとは思えないのですが、
cgi側がどうなってるのかわからないので何とも言えませんが、
ご担当者名のテキストボックスの箇所
<input type="text" name="name" size="44" id="name" />
のname="name"が、もしかしてcgi側で悪さしているのでは?
文法的にはそれでもいいですが...
なるほど!確かにそこからおかしくなってる!!と思って別の名前に変えてみましたが、だめでした…。
でもテーブルのせいではないとわかって安心しました。
CGIがいけないのかな…もう少しよく見てみます。
ありがとうございます。
No.1
- 回答日時:
テーブルには問題がないように見受けられます。
改行コードが入っているようなので、HTML側でなくCGIの問題じゃないでしょうか。
試しにformの送り先をmailtoで自分のメール宛に出してみました。
以下のように受信できましたよ。
shopname=テスト
name=
tel=
email=
email2=
question=
button=送信
どこがおかしいのか全く見当がつかなかったのですが、「CGIがおかしい」とわかったのは大きな収穫です!!
集中して間違い探しをしてみます。
ありがとうございます!
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- HTML・CSS テーブルタグのセルの幅の一部だけを指定 1 2023/03/12 12:02
- AJAX JavascriptからPHPへのAjax通信でnullが返ってくる 3 2022/08/03 22:00
- JavaScript EasyUIのSubGrid(jquery)におけるObjectに入れた連想配列について 1 2022/05/02 11:21
- JavaScript 入力フォームの javascript で メールアドレスの正規チェックをを行い、ボタンをクリックして 2 2022/04/27 16:06
- Visual Basic(VBA) Selenium.ChromeDriverの使い方について 7 2022/09/22 06:43
- JavaScript jQueryで同じクラス名のものを別物として扱いたい 1 2022/06/17 14:14
- HTML・CSS CSSが効かずどのように指定すれば良いか分からないのでアドバイスお願い致します 2 2023/06/07 12:25
- HTML・CSS 【CSS】:hasで可能? imgを含むtr要素を選択したい 1 2022/11/17 14:36
- HTML・CSS ボタンをクリックした時に、入力フォームのすぐ下部に、「入力欄が空白です」というテキストメッセージが表 1 2022/04/27 16:25
- JavaScript ①入力フォーム→②確認表示画面→③送信完了画面のコードを書いているのです、 入力フォームから受け取っ 2 2022/05/10 16:45
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
html でのテキスト結合について
-
vbscriptで時計を作りたい
-
テーブルの一部分のセルだけに...
-
trとtrの間
-
tableタグとformタグの組み合わせ
-
Visual Studio で CLR 開発でデ...
-
TDタグ内での均等割付の仕方
-
<img>タグにCSSのclass設定可能?
-
divで囲んだ文字が消える
-
ブラウザによってテーブルのセ...
-
テーブルのセル内の隙間を取れ...
-
td要素内のdiv要素をセンタリン...
-
Firefoxを使ってるのですがズー...
-
テーブルタグの中にdivを含めて...
-
TRタグの余白をcssで設定するには
-
テーブルの表示がずれます
-
テーブルの行を折りたたみたい...
-
tableコーディング 幅ピッタリ...
-
テーブル内に画像を表示したい。
-
テーブルとテーブルの間隔について
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
html でのテキスト結合について
-
tableタグとformタグの組み合わせ
-
Firefoxを使ってるのですがズー...
-
同じクラス名はつけないほうが...
-
テーブルの一部分のセルだけに...
-
divで囲んだ文字が消える
-
Tableタグ内のspan styleが適応...
-
<img>タグにCSSのclass設定可能?
-
cssで、テーブルのtdの中の文字...
-
vbscriptで時計を作りたい
-
td要素内のdiv要素をセンタリン...
-
Tableタグで作成した表の縮小
-
XHTMLに関する質問 順序が逆に...
-
trとtrの間
-
formのinputなどの幅100%指定
-
firefoxで「height: 100%;」と...
-
画像を並べて配置したい
-
表とリスト(ulとtable)の違い...
-
CSSで空けた文頭の全角スペース...
-
Visual Studio で CLR 開発でデ...
おすすめ情報