ラウンジ(兼FAQ掲示板)

Hyper_Mail v.1.00での二重投稿について
過去ログ NO.1086960182
□ misako [2004年06月03日20時52分]
はじめまして。現在「Hyper_Mail v.1.00」を使用しようと思っているのですが、
二重投稿防止をなくすのにはどうすればいいのでしょうか?
メールフォームを写真投稿に利用しているので、1回しか送れないと困るのですが…。
logファイルもあるので、それもなくさないといけないんですかね?
どなたか回答よろしくお願いします。
□ NXer [2004年06月04日21時23分]
> どなたか

はじめまして。NXerです。

問題点を十分には理解していないのですが、とりあえずHyper_Mail
v.1.00をインストールされてはいかがですか。

当方のローカル・サーバーに設置して
hyper_mial.cgi
を起動したところ、メールフォーム画像が問題なく表示されました。

すえぽんさんのcgiスクリプトをそのままの形でインストールされては
いかがですか。

しばらくはそのまま運用してカスタマイズの必要性を検討する、
特に必要度が高くなければ、引き続き運用します。

どうしても変更したい点が発生した場合に限って、カスタマイズ
すればいいのでは。

>困るのですが…

公開されているソフトですから、多様な環境でテストを経ている
はずです。万一お困りの現象が発生するかもしれません。
その時は作成者すえぽんさんにお知らせすれば、より一般的な
問題であれば、すぐにバージョン・アップされると思います。
□ misako [2004年06月04日22時31分]
NXerさんレスありがとうございます。

NXerさんのおっしゃったように、カスタマイズしてhtmlで表示するようにしていたので、
もう一度ダウンロードし、最低限のカスタマイズしかせずにcgiにアクセスしテストしてみました。
でも今度は違う問題が発生しました。
送信すると「Internal Server Error」と出てしまいます。
でもtempフォルダには送信した画像があります。logにも送信ログがあります。

もしかして、画像のサイズが大きいからでしょうか?
現在2MBまでに設定していますが、サーバーが5MBまでです。
添付が写真なので、テストで送信している1画像が1MB以上です。(1画像しか送信してませんが)
…これが原因ですかね?
あとメールが届いてません;届くまでに時間かかるんでしょうか?

これが原因なら、tempフォルダに画像をアップさせないで、メールに添付するだけということはできないんしょうか?
質問が変わってしまって申し訳ありません。

回答よろしくお願いします。
□ NXer [2004年06月05日20時13分]
>問題が発生

==対策その1==

>最低限のカスタマイズ
が原因で
>Internal Server Error
が発生したと考えた場合、変更行だけをすべて、再度見直されてはいか
がでしょうか。行末の ;(セミコロン)がないなど単純ミスも含めます。
NXerです。

==対策その2==

作成の履歴です。
------------------------------
$ver = 1.01;
$Last_Modified = "2002/02/17"
------------------------------
現在は、よく理解していませんが、ブロード・バンドの時代です。
さらに、ブロッグ((we)blog)の時代です。様変わりは、すさまじいようです。
開発当時の転送率はどの程度だったのでしょうか。
当時の環境下での写真など添付ファイルのサイズです。
---------------------------------------引用
# 添付できるファイルの最大合計サイズ
# 単位は bytes (1kb = 1000bytes)
$max_size = 50000;
-----------------------------------
maxを送信テストの時、意識されましたでしょうか。
単位は、サーバー用にバイトのため、kb単位換算のコメント文が付いています。
50、000/1、000=50kbということです。

お手元にこれを下回るサイズの画像があれば、それで添付テストされてはいか
がですか。その結果が良好でしたら、さらにカスタマイズを計画されてはいか
がでしょうか。

下記のような制約があり、ご希望(1MG画像添付)には程遠い
ところからの再スタートの試み提案にて失礼します。
-----------------------------------------------------制約事項--
misakoさんのhyper_mailの使用目的、環境、初期設定、ディレクトリ
構成、cgiのURLなどは、知らされていないので、無責任な回答の点は
ご容赦ください。質問については、ラウンジ・トップのりティさんのご助言
をご参照ください。
-----------------------------------------------------------------
□ misako [2004年06月08日22時19分]
NXerさん、回答ありがとうございます。
URLも書かずに質問してしまい申し訳ありませんでした;

バージョンは1.01で最終更新日も2002/02/17です。
テストのためにcgiでアクセスした最低限カスタマイズの方はファイルサイズの小さいものなら「Internal Server Error」と表示されず無事送信されました。メールも即届きました。
もちろんmaxは2MBにカスタマイズしてあります。
どこかで調べたのですが1MB=1048576バイトなんですよね?
ですから$max_size = 2097152;にしてあります。
なので、やはりファイルサイズが大きすぎるせいだと思われます。
でもhtmlにアクセスする方は、ファイルサイズが小さいものでも「二重送信の可能性があります」と出て送信できません。
ちなみにlog.tmpを白紙にしてファイルサイズの小さいものを送信すると無事送信できますが、
再度違うものを同じ名前、メールアドレスで送信しようとすると同じようにエラーが出ます。さらにメールもすぐには届きません。

今回はhtmlでアクセスする方の二重送信のエラーについて回答お願いします。
URLはhttp://cgi30.plala.or.jp/milk/hyper_mail/form.html
cgiファイルはhttp://cgi30.plala.or.jp/milk/hyper_mail/hyper_mail.txt
プロバイダはぷららです。
□ NXer [2004年06月09日20時58分]
>テストのために
お手数をお掛けしました。NXerです。

>ファイルサイズの小さいもの、、、示されず無事送信
このような詳細かつ適切な結果をご報告いただき、うれしい
限りです。そこで、当方で一覧にまとめて見ます。それはcgi
スクリプトが、正しく実行された結果である、という結論に
至ります。つまり、テストから、初期設定の画像50kb以下の
サイズでは問題なし。エラーは、テスト運用の問題ではないか
ということです。

その1 結果の一覧

画像形式、サイズ、コメント形式、送受信、log.tmp、運用合否
--------------------------------------------------------------------
1不明・・不明・・・・text・・・即時・・・不明・・合格
JPG?・・50kb以下?・・・・・・・・・・・・・・・・・
2不明・・不明・・・・html・・・////・・・不明・・否1(二重送信)
3不明・・不明・・・・html・・・送信OK・・白紙・・合格
4不明・・不明・・・・html・・・遅配・・・不明・・否2(二重送信)
-------------------------------------------------------------------
その2 >二重送信のエラーについて

スクリプトを掲載いただき助かりました。その295行目付近を
見てください。298行、ここが、新旧比較の二重送信のチェックです。
-------------------------------------------------------
292 $new_val = "$in{'name'}$in{'mail'}$in{'subject'}$mess";
if (! open(TEMP,"$temp$log")) { &error("■ $logが開けません"); }
295 $last = <TEMP>;
close (TEMP);
298 if ($new_val eq $last) { &error("■ 二重送信の可能\性があります。"); }
if (! open(TEMP,"> $temp$log")) { &error("■ $logが開けません"); }
print TEMP $new_val;
close (TEMP);
------------------------------------------------
テスト順に報告いただいたとすると、$logは2回目が、同一コンピュータ
でほぼ1回目の直後とすると、295行目で得た値は、298行で新旧の等記号が
真となり警告が発生。

次に、
>ちなみにlog.tmpを白紙に

するというのは、$last=""; と、ソロバンでいうご破算のこと。
当然警告はでません。しかし、このあとはまた、ご破算ナシなら
2と類似の結果です。しかし、遅配されており、異なる条件が加わったの
かもしれません。

その3 運用の問題

当方はテストの時、スクリプトを変更しますが、時々、画面と
実行される内容が異なることがあります。変数など時に直前の
値を示すことがあります。あるいは、
$A="abcabc"のように2度目にabcの繰り返しになるなどです。
これは、$A=""; のように空にする、ご破算にすることを
忘れた時です。このようなリセットは、初期設定で必要なら記述
します。あるいは、再起動や、電源切入でリセットします。
misakoさんは、$logで、奇しくもリセット行為をされたわけです。
運用の問題とする理由です。すえぽんさんのソフトでエラーのでる
恐れは、環境の差により常にありますが、基本的には、初期設定
範囲内では十分にテスト運用されているものと信じます。また、
どなたかが設置運用されているはずです。(1日訳約1600度アクセスあり。)

その4 ウェブサイトの目的とcgi選び

ウェブマスタが目的を明示して、プログラマーがサイトを構築します。
両者の納得のいくサイト作りのために、cgi制作あるいは選択は目的に
合致する結果になります。しかし、個人サイトでは、同一人のために、
目的に対応するcgi選択は、サンプルだけでは速断できない要素が
かなりあるような気がします。
hyper_mailは、設計思想が50kb程度の画像を添付するメーラーと
割り切れば、プラスは設置が簡単、文字色などの選択が豊富、
ウェブサイトのサイズも当時なら5MB〜10MBと十分に安価、省スペース。
しかし、現在のデジカメの能力からは、2MBの画像では2〜5枚で消費し
てしまいます。
画像用掲示板で、削除機能があっても、サイトの趣旨に合わない画像
を事前にチェックできないなどの問題があり、hyper_mailを選択された
ものと思います。サイトの趣旨に、いろんな意味で、見合うcgiに変更
できるといいですね。
とりあえず、ご質問に関連するスクリプト、その2をお知らせして、
失礼します。(その他は、愚考、(*x*)!)
□ misako [2004年06月10日01時52分]
いつもありがとうございます。

またhtmlの方でテストしてみました。
このスクリプトって件名が必須項目にされていますよね?なので私は「match」のところを件名にしていました。
「vsマリ戦」で1度送信し、すぐに戻って「vsマリ戦」で違う画像を送信するとエラーが出るようです。
すぐでも「vsマリ戦」「vsトルコ戦」「vsマリ戦」等にするとちゃんと送信されました。これが二重送信にひっかかる原因みたいです;

うーん、それよりもファイルサイズの大きいものが遅れないとこのスクリプトを使用できないですね;
今までテストしたファイルサイズの小さい画像(gif等)は送信してもメールがすぐ届き、tempファイルに画像が残りませんでした。
しかし、ファイルサイズが1MB以上の画像を送るとすぐには届かずtempファイルに画像が残りサーバーが重くなってしまいます。
これはすぐに遅れないためにtempファイルに一時ファイルが残ってしまうということなんでしょうか?

でももしtempファイルに画像が残らないようになっても送信後にInternal Server Errorが出てしまうので、やはりファイルサイズの大きい画像は無理だってことですよね?
せっかくいいスクリプトを見つけたのですが、使用できなくて残念です;

私はこのスクリプトで送られてきた写真をこっちでサイズ等を修正し、アルバム系CGIスクリプトにUPするということをやりたかったんです。
じゃないと画像サイズが大きいまま投稿されてしまい、大きすぎて見れない、サーバーに負担がかかるという問題が出てしまいます。
また単純にメルアドを掲示して、送信してもらうという方法もありますが、ファイル形式を指定できないので、ウィルスが届いても困ると思いました。
そこでこういった添付も可能なメールフォームスクリプトを探していたんです。
やっぱりこういった問題がでては使用できないですよね?

suepon.com | CGI作成/CGI制作 | JavaScript | ドメイン検索 | バナー自動作成 | Google ダンスツール | 松浦亜弥 | H.P.memo | パソコン | ネイル

Copyright (C) 2002 - 2009 suepon , All rights reserved. Powered by CGI Script Market.