人力検索はてな
モバイル版を表示しています。PC版はこちら
i-mobile

オーダー用のCGIを作成しましたが、顧客がNNのブラウザを使うと、当方で受け取るsendmailが、FROMがNobodyとなって、先方のアドレス、オーダーシートに書き込まれた内容が空となって送られてきます。
IEでは全くない支障がないのですが、どうしてそうなるのか、わかりません。
サーバーを変更すれば、NNでも支障がありません。考えられる理由を教えてください。

●質問者: rasa_25
●カテゴリ:ウェブ制作
✍キーワード:CGI IE sendmail アドレス サーバー
○ 状態 :終了
└ 回答数 : 5/5件

▽最新の回答へ

1 ● dayofgreen
●10ポイント

http://www.hatena.ne.jp/1086664997

オーダー用のCGIを作成しましたが、顧客がNNのブラウザを使うと、当方で受け取るsendmailが、FROMがNobodyとなって、先方のアドレス、オーダーシートに書き込まれた内容が.. - 人力検索はてな

回答ではないのでポイントは結構です。

CGIそのものや「サーバーを変更すれば」の意味がわからないと回答は難しいと思います。

◎質問者からの返答

レンタルサーバAでは、うまく支障なしに動作するのですが、レンタルサーバBでは上記の問題が発生してしまうのです。

CGIというよりはHTMLの問題だと思っているのですが・・・。


2 ● 美衣紗
●20ポイント

http://www5e.biglobe.ne.jp/~access_r/hp/html/html_017.html

フォームからメールを出す方法 - HTML

CGIで・・・というのが不思議なのですが。

FORMからメールを送る場合でしたら

NNではフォームからメールの取り出しに対応していないバージョンがあります。

(N3、N4はOKですがN6はNG、N7はSubjectに対応していません)

サーバーを変更すれば・・・と言うのも、単にNNでもN3、N4だったからOKだったという可能性もあります。

CGIでのメールフォームがこのまま書かれていたら・・・という場合ということになりますが。

◎質問者からの返答

私が初心者なので、わかってない部分があると思うのですが・・・。

FORMに入力されたものを顧客が送信ボタンを押すことによってCGIが動き、未入力がある場合、それを即す画面に切り替わったりします。

FORMからメールを送る場合は、上記の様なワザは使えず、メールを当方が受取るだけだと思われるのですが・・・。

教えていただいた参考アドレスでは、IEもNGとなっていますが、IEでは、レンタルサーバーAとBの両方で支障なく使えます。

しかし、NNでは、レンタルサーバーAでは問題なく、Bでは質問の問題が起こってしまいます。


3 ● 美衣紗
●0ポイント

http://watch.impress.co.jp/internet/www/article/1999/1122/specia...

ホームページにメール送信機能をつけてみよう

2回目です。ちゃんと把握できていない状態で勘違いな回答ですみません。

1.メールは届くのに空メール

=CGIは動いているが入力されたデータをちゃんと読みとれていない

2.サーバーによってはちゃんと届く

だけでしたら、

FORMのACTIONの表記の仕方が違う(サーバーによってCGIの呼び出し方が違う)

(例:

http://user/mail.cgi

http://cgi.user/mail.cgi

)

という可能性が考えられるんですけど。

それだと、どちらもIEだけは届くというのが不思議ですよね

逆に

1.文字化けしているだけで、空メールでなければ・・・

2.どちらのサーバーもNNはNGなら・・・

文字コード、メゾット、JavaScriptの関係

だと思うのですが。

この場合も、一方のサーバーではちゃんと届いているというのが不思議。

お役に立てずにすみません・・・

ちなみに参考URLでメールフォームについて詳しく書かれているので、一度チェックされてはいかがでしょうか?

CGIやHTMLのソース、サーバーの状態が良くわからないので

見落としている点があるかもしれません。

1.>オーダー用のCGIを作成

2.>CGIというよりはHTMLの問題だと思っているのですが・・・。

3.>レンタルサーバーAでは問題なく、Bでは質問の問題が起こってしまいます

というのは、

*ご自分で書かれた「Perl言語のCGI」

*HTMLから「FORM ACTION=〜.cgi」で呼び出して「sendmail」で送る

*「全く同じもの」をAサーバーとBサーバーにアップした結果

と、勝手に判断しましたが、よろしかったでしょうか?

CGIやHTMLのソース、サーバーの状態が良くわからないので

見落としている点があるかもしれません。

◎質問者からの返答

>*ご自分で書かれた「Perl言語のCGI」

>*HTMLから「FORM ACTION=〜.cgi」で呼び出して「sendmail」で送る

>*「全く同じもの」をAサーバーとBサーバーにアップした結果

上記の判断でOKです。

参考URL、ありがとうございました。

もう一度、読んで再確認したいと思います。


4 ● aki73ix
●50ポイント

http://e-words.jp/w/E382ADE383A3E38383E382B7E383A5E382B5E383BCE3...

キャッシュサーバとは 【cache server】 - 意味・解説 : IT用語辞典

まず、CGIの確認ページや、送信時に呼び出すCGIが、自分自身になっていませんか?つまり form.cgi 自身が <form>タグで自分を呼んでいるということです

その上で

1.WebサイトのアクセスにProxyを使っていませんか?

2.Netscapeの設定でキャッシュしたドキュメントとネットワーク上のドキュメントの比較がしない、もしくはセッション毎になっていませんか?

条件に合うのならば、うまくいかないほうのプロバイダのHTTPのリクエストの形式が不適切なのでしょう

1の場合Proxyを通さないか、プロバイダを返るしかありません

2の場合はNetscapeのキャッシュの設定を「毎回」に変更することによってうまくいくと思います

他のCGIでサービスを提供している企業にも2のリンクのような注意書きが良くあります

http://www.dinos.co.jp/guide/guide19_kankyo.html

ご利用環境の設定について ディノス

◎質問者からの返答

>まず、CGIの確認ページや、送信時に呼び出すCGIが、自分自身になっていませんか?つまり form.cgi 自身が

タグで自分を呼んでいるということです

もしかしたら・・・

上記の事でしょうか・・・。

内容を確認する為に作成したのですが・・・。

一体、これをどうすれば、いいのでしょうか?


5 ● aki73ix
●10ポイント

> <form action=mailer.cgi method=post>

> 上記の事でしょうか・・・。

>内容を確認する為に作成したのですが・・・。

>一体、これをどうすれば、いいのでしょうか?

この記述があるファイルの名前が mailer.cgiであるならばそういうことです。

1.試しに post を getにしてみる

2.CGIを同内容で2つおいて mailer.cgi から mailer2.cgiを呼ぶようにしてみる

3.後は先ほどの回答のように Netscapeのキャッシュの設定を「毎回」に変更することで上手くいく場合があります

2回目の回答で、これ以上回答できないので。続きはいわしでも・・・

関連質問


●質問をもっと探す●


0.人力検索はてなトップ
8.このページを友達に紹介
9.このページの先頭へ
対応機種一覧
お問い合わせ
ヘルプ/お知らせ
ログイン
無料ユーザー登録
はてなトップ