ホームページ作り初心者です。
くだらない質問かもしれないのですが、行き詰まって悩んでいます…。
どうかよろしくお願い致します。
今、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で質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
- ・漫画をレンタルでお得に読める!
- ・一回も披露したことのない豆知識
- ・これ何て呼びますか
- ・チョコミントアイス
- ・初めて自分の家と他人の家が違う、と意識した時
- ・「これはヤバかったな」という遅刻エピソード
- ・これ何て呼びますか Part2
- ・許せない心理テスト
- ・この人頭いいなと思ったエピソード
- ・牛、豚、鶏、どれか一つ食べられなくなるとしたら?
- ・あなたの習慣について教えてください!!
- ・ハマっている「お菓子」を教えて!
- ・高校三年生の合唱祭で何を歌いましたか?
- ・【大喜利】【投稿~11/1】 存在しそうで存在しないモノマネ芸人の名前を教えてください
- ・好きなおでんの具材ドラフト会議しましょう
- ・餃子を食べるとき、何をつけますか?
- ・あなたの「必」の書き順を教えてください
- ・ギリギリ行けるお一人様のライン
- ・10代と話して驚いたこと
- ・家の中でのこだわりスペースはどこですか?
- ・つい集めてしまうものはなんですか?
- ・自分のセンスや笑いの好みに影響を受けた作品を教えて
- ・【お題】引っかけ問題(締め切り10月27日(日)23時)
- ・大人になっても苦手な食べ物、ありますか?
- ・14歳の自分に衝撃の事実を告げてください
- ・架空の映画のネタバレレビュー
- ・「お昼の放送」の思い出
- ・昨日見た夢を教えて下さい
- ・ちょっと先の未来クイズ第4問
- ・【大喜利】【投稿~10/21(月)】買ったばかりの自転車を分解してひと言
- ・メモのコツを教えてください!
- ・CDの保有枚数を教えてください
- ・ホテルを選ぶとき、これだけは譲れない条件TOP3は?
- ・家・車以外で、人生で一番奮発した買い物
- ・人生最悪の忘れ物
- ・【コナン30周年】嘘でしょ!?と思った○○周年を教えて【ハルヒ20周年】
- ・10秒目をつむったら…
- ・人生のプチ美学を教えてください!!
- ・あなたの習慣について教えてください!!
- ・都道府県穴埋めゲーム
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
<img>タグにCSSのclass設定可能?
-
tableタグとformタグの組み合わせ
-
tableタグの中にtableタグ
-
tableがbodyにはみ出る。。
-
HTMLのテーブルでそれぞれの大...
-
html でのテキスト結合について
-
ホームページビルダーでリンク...
-
テーブルタグの中にdivを含めて...
-
テーブルの任意の列を非表示に...
-
CSSで特定のテーブルだけに...
-
(HTML)Tableを任意の位置に置...
-
TABLEのセルの中の文字を行単位...
-
table表を横に並べる際の間隔指定
-
ホームページ 表の上の余白を...
-
アンカータグ内の文字の色を変...
-
スタイルシートは直接指定より...
-
テーブルの位置を細かく指定し...
-
逆L字の表(table)組み
-
ウィンドウのサイズを変えても...
-
テーブルとテーブルの間隔について
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
tableタグとformタグの組み合わせ
-
html でのテキスト結合について
-
テーブルの一部分のセルだけに...
-
同じクラス名はつけないほうが...
-
td要素内のdiv要素をセンタリン...
-
Tableタグ内のspan styleが適応...
-
divで囲んだ文字が消える
-
XHTMLに関する質問 順序が逆に...
-
Tableタグで作成した表の縮小
-
<img>タグにCSSのclass設定可能?
-
Firefoxを使ってるのですがズー...
-
cssで、テーブルのtdの中の文字...
-
表とリスト(ulとtable)の違い...
-
trとtrの間
-
Dreamweaver デザインビューの...
-
formのinputなどの幅100%指定
-
同じwidth=200でもセル内の文字...
-
vbscriptで時計を作りたい
-
Visual Studio で CLR 開発でデ...
-
4カラムのテーブルに絶対幅と相...
おすすめ情報