![](http://oshiete.xgoo.jp/images/v2/pc/qa/question_title.png?e8efa67)
入力画面で入力したデータを、
確認画面でHiddenに設定し、
確認OKでHiddenからの入力データを
メールで送信するCGIを作成しました。
確認画面では、入力内容を正しく表示するのですが、
確認OKでメールを送信すると
同じNameの入力項目の情報を重複して表示してしまいます。
こんな感じです・・・
【入力・確認画面】
Add:住所1
Tel:999-999-999
Add:住所2
Tel:111-111-111
【メール内容】
Add:住所1
Tel:999-999-999
Add:住所2
Tel:111-111-111
Add:住所1
Tel:999-999-999
Add:住所2
Tel:111-111-111
フォーム内容を取得するところがまずいのでしょうか・・・
補足等致しますのでアドバイスお願いいたします。
【フォーム内容を取得】
if ($ENV{'REQUEST_METHOD'} eq "POST") { read(STDIN, $buffer, $ENV{'CONTENT_LENGTH'}); }
else { $buffer = $ENV{'QUERY_STRING'}; }
No.5ベストアンサー
- 回答日時:
フォーム内容を取得する際の$bufferの値に、add等は二重に入ってますか?
送信側CGIと受信側CGIのどちらに原因があるかが判ると原因に近づけるかも…
それから、確認フォームを飛ばして、いきなり入力画面からメール送信にしたら問題は出ますか?
これで出るならメール送信CGI側(受信側)の問題な気がします。
★ご参考ですが…
的はずれだとは思いますが、以前使用していたサーバーで、FTPに不具合があり、既存のファイルを転送しなおしたら、新しく終わったファイルの後ろにゴミが入った事がありました。一度CGIファイルを削除して転送し直してみては如何でしょう。
まだ、不具合は解消していないのですが、
最初の質問と疑問点がずれてきてしまったので
一旦締め切って、いろいろ試してみたいと思います、
ありがとうございました。
またよろしくお願いいたします。
No.4
- 回答日時:
確認画面でhiddenに設定しているというのが気にりますね。
hiddenでは表示されないので、表示用には投稿時と同じようにフォームに設定しているのでしょうか?
だとしたら
hidden と 確認用のフォームに同じnameを付けているために、同じデータが二つづつ送信されてしまうのでは?
<input type="hidden" name="Add" value="住所1">
<input type="text" name="Add" value="住所1">
確認画面で上記のような状態に?!
もし、そうであれば hiddenへの設定は不要になりますね。
回答ありがとうございます。
入力画面ではTEXTボックス。
確認画面ではHIDDEN項目と、通常の文字表示でつくりました。
私がテストしているサーバではうまくいくのですが、
Webサーバの別サーバでテストするとこんな現象になります。。。
No.3
- 回答日時:
1 【入力・確認画面】で表示される画面のソースは確認しましたか?もしもここに何も問題がないのであれば
プログラム上の問題なので、スクリプトの他の部分も見ないと原因はわかりません。
2 もしもあなたが、欲しい項目をはっきり把握しているなら・・・
もちろん把握してますよね?
use CGI qw(:standard escapeHTML);
$Add=param('Add');
$Tel=param('Tel');
・・・・
で内容を取得して、メール本文を形成してやれば、少なくとも重複することはないと思います。
1、CGIで作成されたHTMLならば確認いたしました。
ソース全てをのせて原因を見ていただきたいのですが、大変残念なことに文字制限に引っかかってしまいます。
2、そんな感じでNameを指定して取得しているのですが。。。。
繰り返し項目TextのNameを同じにしたのがまずかったのでしょうか。。。
ありがとうございました。
![](http://oshiete.xgoo.jp/images/v2/common/profile/M/noimageicon_setting_08.png?e8efa67)
No.2
- 回答日時:
こんばんわ。
入力画面・確認画面・送信は、すべて同一のCGIで出力
(表示)をしているのでしょうか?
例:ab.html -> def.cgi -> def.cgi
def.cgi -> def.cgi -> def.cgi 等
それと、この部分はリクエストメソッドの判定をして、送
られてきたデータをバッファに入れてるだけなので、この
部分の公開だけでは、どこが問題なのか判断できません。
if ($ENV{'REQUEST_METHOD'} eq "POST") {
read(STDIN, $buffer, $ENV{'CONTENT_LENGTH'});
} else {
$buffer = $ENV{'QUERY_STRING'};
}
とりあえず、CGIの中身を教えていただかないと厳しいです。
html+cgiで行っているならば両方のコードをお願いします。
(もしソースコードの公開に抵抗がある場合は結構です。)
それでは。
回答ありがとうございます。
CGIは全て1つのソースで作りました。
フォーム内容を別々の変数に入れる部分は確認とメール送信で共通で使っているので、おかしいとしたらここかな?と・・・
(+文字制限があるので
それで、別サーバでも同じ環境でためしてみたのですが、そっちはうまくいくのです。。。
ソースと言うより、サーバのせい?と思ってきました。
No.1
- 回答日時:
まずは、Formのmethodをgetにして、最初のページから確認ページ、確認ページから登録処理へ行くところで、URLの後ろに「意図したパラメータのみ」が付与されているか確認してみてはいかがでしょう。
ちゃんとxxx.cgi?変数=値&変数=値&変数=値・・・となっているなら、プログラム上の問題かと思います。
そのあたりは如何ですか?
それも質問に書いて貰えると、より回答しやすくなりますので。
回答ありがとうございます。
分かりにくい質問になってしまって申し訳ありませんでした。
教えていただいた方法で
別サーバでも同じソースを使ってテストしてみたのですが、1つではうまくいき、別のもう1つでは質問した現象が発生してしまいました。
サーバが原因なのでしょうか・・・。
なにかお心あたりありましたらお願いいたします。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- JavaScript ①入力フォーム→②確認表示画面→③送信完了画面のコードを書いているのです、 入力フォームから受け取っ 2 2022/05/10 16:45
- PHP php 確認表示画面で値をSESSIONから取り出す理由の解釈は正しいでしょうか? 1 2023/06/09 17:39
- PHP PHPで入力フォームでデータを確認表示画面まで送る流れを日本語で理解したいのです。 1 2023/05/29 19:12
- PHP php 入力画面から確認表示画面へ情報の受け渡しについて。 1 2023/06/07 18:00
- JavaScript 入力フォームの javascript で メールアドレスの正規チェックをを行い、ボタンをクリックして 2 2022/04/27 16:06
- HTML・CSS ボタンをクリックした時に、入力フォームのすぐ下部に、「入力欄が空白です」というテキストメッセージが表 1 2022/04/27 16:25
- 電子マネー・電子決済 paypayで本人確認するとマイナンバーカードが引越し前の住所のままです 3 2022/08/16 08:27
- JavaScript Javascriptが機能せず原因が分からないので教えて頂きたいです 3 2023/06/04 14:50
- アイドル・グラビアアイドル ジャニーズショップでログインしてもグッズが買えないです。 購入画面になって、個人情報を入力する画面で 2 2022/04/04 17:12
- その他(ソフトウェア) Microsoft Store Guitar Pro購入後の質問 1 2022/08/11 17:15
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
お問い合わせフォームから送信...
-
VB6で、Bsmtp.dllを使って、メ...
-
Safariで「本当にこのフォーム...
-
BASP21のSendMailとSendMailEx...
-
CGIフォームからのsendメールが...
-
Googleフォームを回答したか確...
-
VBでメール送信ソフトを作成
-
ビジネスメールの敬称
-
初歩的な事だと思います。 Sub...
-
DATE型変数を初期化する方法
-
Excel-VBAでInputBox+Pulldown...
-
EXCEL VBAで、URLを入力して、...
-
TextBoxから数字が文字...
-
テキストボックスの番号を使っ...
-
エクセルVBA テキストボックス...
-
アイフォン使ってたらちょくち...
-
DataGridView 列ごとの入力制限
-
textareaについて
-
入力フォームの値をQRコードで...
-
WebフォームのIMEモードを入力...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
お問い合わせフォームから送信...
-
フォームを再送信しますか?
-
Safariで「本当にこのフォーム...
-
Googleフォームを回答したか確...
-
ACCESSから、メール送信を行い...
-
VB6で、Bsmtp.dllを使って、メ...
-
ソケットで通信するデータの帯...
-
ホームページビルダーのメール...
-
VBA EasyCommでの送信
-
Accessでメール一括送信ソフ...
-
c# メールが送信できたか確認
-
SendmailでHTML形式のメールを...
-
CGIでメールのReturn-Pathに値...
-
BASP21のSendMailとSendMailEx...
-
HP の問い合わせフォームのつく...
-
空メールを送信するフォームCGI
-
アンケート用紙での回答ができない
-
送信字数制限の無いフォームCGI...
-
sendmailでの複数メールアドレ...
-
safariの 「本当にもう一度フ...
おすすめ情報