記事No | : 7833 |
投稿日 | : 2010/08/19(Thu) 10:21:18 |
タイトル | : postmail解決できないエラー |
ID情報 | : taitan9 |
投稿者 | : 昼行灯 |
URL | : http://www.taitan.net |
postmail.cgiを数サイトで快適に使用させて頂いておりKENT様に感謝いたしております。
タイトルに解決できないと書きましたが私には解決できないを付け加えさせていただきます。
環境はWinXP、SP3,IE8、PostMail(Ver4.31)です。
現象はHTMLファイルからform auctionでpostmail.cgiを実行するとmailは正常に送信出来ますが、thx.htmlが表示されずInternetServerErrorとなります。
このエラーはAのPCのみで発生、別にBのPCで同一サイトにアクセスすると上記は正常に処理されて終了されます。
全く別サイトで使用させて頂いているpostmailもAのPCではエラーBのPCでは正常です。
と言う事は原因はpostmail以外(使用PC側)にあると推測されます。
であるなら、ここでご質問スレッドを立ち上げるのは筋違いと思いますが原因が究明できず数日間、右往左往しております。
エラー現象が出はじめた日に変更した事は次です。
・postmailをGET受信設定に変更
・HTMLのmethodをPOSTからGETに変更
・HTMLのフォームデータをクッキーに保存
この状態でBのPCからのアクセスは正常、AのPCではGETで渡されたフォームデータを表示して正常にメール送信を行った後にエラーが発生します。
変更箇所を元に戻しクッキーも削除しましたが依然エラーは発生します。(B,pcは正常)
全く触って(変更)いないサイトのpostmailにAのPCからアクセスしてもエラーは発生します。
明らかにAのPC側の原因と思いますが解決の糸口が掴めず途方にくれています。
どなたか同じような現象になった方はいませんか?
もし、いらっしゃいましたらご教示ください。
記事No | : 7834 |
投稿日 | : 2010/08/20(Fri) 21:13:06 |
タイトル | : Re: postmail解決できないエラー |
ID情報 | : teketen |
投稿者 | : てけてん |
う〜ん、他のパソコンでは正常で、その一つのパソコンだけ駄目な場合は、やはりスクリプトに原因があるのではなく、そのパソコンに問題がありそうです。
ですので、おっしゃるとおり、こちらではその症状を確認する事が出来ない為、的確なアドバイスが殆ど出来ません。
メールは正常に送信されて、完了画面が出ずにエラーなのですよね?
でしたら、postmail.cgiの設定部分
# 送信後の形態
# 0 : 完了メッセージを出す.
# 1 : 戻り先 ($back) へ自動ジャンプさせる.
$reload = 0;
これを1にした場合でも、Internal Server Errorが出ますか?
1にしていたら、0にするとどうなりますか?
どちらでもエラーが出る場合は、何らかの原因で送信処理の最後に、sendmail側でエラーが発生しているのかも知れません。
サポート掲示板の過去ログでは、
「メール送信後Internal Server Error」
http://www.kent-web.com/support/old/65/0290.html
という事例があります。
こちらでもKENTさんも書かれていますが、postmail.cgiの2行目に
BEGIN {
use CGI::Carp qw(carpout fatalsToBrowser);
carpout(STDOUT);
}
または、
BEGIN {
use CGI::Carp qw(fatalsToBrowser);
}
のどちらかを記述して、Internal Server Error以外のエラーが表示されませんか?
表示されない場合は、スクリプトの所為ではないので、申し訳ありませんが、こちらではこれ以上アドバイスが出来ません。
IE8でその現象が出るならば、他のブラウザではどうか確かめて見ると、ブラウザの所為なのか、別の問題なのかの切り分けが出来ると思います。
あとは、セキュリティソフトを一時的に停止してから試すとどうなるかーなどでしょうか。
と、これくらいしか、こちらではアドバイスが出来ません。
Windows関係の掲示板などでご質問された方が、有意義な回答が戴けるかも知れません。
記事No | : 7835 |
投稿日 | : 2010/08/20(Fri) 23:50:08 |
タイトル | : Re^2: postmail解決できないエラー |
ID情報 | : liberty8 |
投稿者 | : KK |
URL | : http://www11.atpages.jp/atgamewikibbs/Patio.html |
> てけてんさん
use を BEGINブロックで囲む必要はありません。
以下の"Perl Modules module"の項目を参照してみて下さい。
http://perldoc.jp/docs/perl/5.8.8/perlmod.pod
> 昼行灯さん
GETメソッドはPOSTメソッドと用法が違います。
GETメソッドは"取得"で、QUERY_STRING(URIの"?"の後ろの文字列)に応じたコンテンツを取得するのに利用します。
POSTメソッドは"投函"で、サーバーにコンテンツを送信するのに利用します。
GETメソッドでサーバーにコンテンツを送信することは本来の用法ではありませんし、
URIには長さに制限がありますので大した量を送信できません(ブラウザ依存)。
多分その点で必要なデータが欠けてしまい、内部エラーになったのかと思います。
http://www.connect-i.co.jp/tipsblog/?p=6
記事No | : 7836 |
投稿日 | : 2010/08/21(Sat) 17:48:15 |
タイトル | : Re^3: postmail解決できないエラー |
ID情報 | : taitan9 |
投稿者 | : 昼行灯 |
ありがとうございます。解決しました?
原因特定の解決は残念ながらできませんでしたが、windowsの修復を行ってもダメでしたので思い切ってリカバリーを行いました。
結果エラーの発生は止まりましたのでDLLのどれかが破壊されていたのではないかと推測してます。
GETメソッドの使用に際してはKKさんご指摘のとおりですが、何せ非才なものですからラジオボタンとチェックボックスのクッキ保存ができずネット上から頂いたライブラリーをそのまま使用させてもらってます。
ご両人から頂いたご教示は大変勉強になりました、またpostmailが原因ではないのにお騒がせいたしまして申し訳ありませんでした。
ありがとうございました。またよろしくお願い申し上げます。
記事No | : 7837 |
投稿日 | : 2010/08/21(Sat) 22:42:35 |
タイトル | : Re^4: postmail解決できないエラー |
ID情報 | : teketen |
投稿者 | : てけてん |
昼行灯さん
やはり、そのパソコン固有の問題でしたか。
リカバリしたとはいえ、解決してよかったですね。
KKさん
> use を BEGINブロックで囲む必要はありません。
はい、勿論それは知っています。
私も、普段はuseでモジュールを呼び出す時は、BEGINブロックは使っていません。
今回は、勿論理由があっての事でしたが、ご質問者のサーバーでは、use CGI::Carp qw(fatalsToBrowser);はBEGINで呼び出さなくても問題ないので、要らぬ誤解をされるなら、記述しない方が良かったですね(^^;
(理由については、既に問題が解決している為、省略させて下さい。自分が試せない事なので、憶測ということもありますし(^^;)
但し、ご存知だと思いますが、carpout()はBEGINで呼び出す必要があります。