cgiのメールフォームについて質問です。

「WwwMail」というフリーのcgiを使用しています。
http://www.tohoho-web.com/soft/wmail.htm

途中までカスタマイズできたのですが、
どうしても解決できないことがあります。
送信ボタンを押した後の画面の一番下に、
送信結果が表示されてしまうのですが、
これを表示しない方法を探しています。

cgiの中に下記の記述があるのですが、
これを削除すると動作しなくなってしまいました。

#
# ブラウザ画面に送信結果を書き出す
#
{
&jcode'convert(*header, "sjis");
&jcode'convert(*footer, "sjis");

$mail = $mailhead . $mailbody;
&jcode'convert(*mail, "euc");
$mail =~ s/&/&/g;
$mail =~ s/"/"/g;
$mail =~ s/</&lt;/g;
$mail =~ s/>/&gt;/g;
$mail =~ s/¥n/<BR>/g;
&jcode'convert(*mail, "sjis");

print "Content-type: text/html¥n";
print "¥n";
print "$header¥n";
print "$mail¥n";
print "$footer¥n";
}

どうか力を貸してください!!

回答の条件
  • URL必須
  • 1人3回まで
  • 登録:
  • 終了:2010/06/18 23:27:46
※ 有料アンケート・ポイント付き質問機能は2023年2月28日に終了しました。

ベストアンサー

id:koriki-kozou No.1

回答回数480ベストアンサー獲得回数79

ポイント60pt

>動作しなくなってしまいました

動作しなくなったのではなく「成功時に返ってくるはずの文章がまるごと消されてしまっている」ので何の応答も無いように見えるだけなのでは?


下記に置き換えてみて

# ブラウザ画面に送信結果を書き出す
#
{
	print "Content-type: text/html\n";
	print "\n";
	print "$header\n";
	print "$footer\n";
}

(最初の二行はperlからブラウザに出力する際の先頭に必ず記述するもの。本体はその続きに書く)

http://www.tohoho-web.com/soft/wmail.htm

id:helpme1111

こんばんわ。先日はありがとうございました。

置き換えてみたのですが、やはり、500 errorになってしまいました。。。

2010/06/18 01:28:14

その他の回答3件)

id:koriki-kozou No.1

回答回数480ベストアンサー獲得回数79ここでベストアンサー

ポイント60pt

>動作しなくなってしまいました

動作しなくなったのではなく「成功時に返ってくるはずの文章がまるごと消されてしまっている」ので何の応答も無いように見えるだけなのでは?


下記に置き換えてみて

# ブラウザ画面に送信結果を書き出す
#
{
	print "Content-type: text/html\n";
	print "\n";
	print "$header\n";
	print "$footer\n";
}

(最初の二行はperlからブラウザに出力する際の先頭に必ず記述するもの。本体はその続きに書く)

http://www.tohoho-web.com/soft/wmail.htm

id:helpme1111

こんばんわ。先日はありがとうございました。

置き換えてみたのですが、やはり、500 errorになってしまいました。。。

2010/06/18 01:28:14
id:niwa-mikiho No.2

回答回数516ベストアンサー獲得回数40

ポイント10pt

エラーになってしまっているのは、


print "Content-type: text/html¥n";

print "¥n";

print "$header¥n";

print "$mail¥n";

print "$footer¥n";


の部分をそっくり消してしまい、content-type を出力してないことが原因かと思われますので、

上記の部分を


print "Content-type: text/plain¥n";

print "¥n";

print "送信完了しました。¥n";


のようにすることでよいかと思います。

HTML による送信完了画面にしたいのであれば、


print "Content-type: text/html¥n";

print "¥n";

print "<html><head><title>送信完了</title></head><body>\n";

print "送信完了しました。
¥n";

print "</body></html>\n";


でよいかと思います。



http://1

id:helpme1111

回答ありがとうございます。

うーん、やっぱりダメでした。

今度は文字化けしたページがでてきました。

質問の意図がうまく伝えられてないのかもしれません。

送信結果(送信内容)を完了画面の中に表示したくないのです。

うまく説明できなくて、すみません。

2010/06/18 01:58:39
id:hanako393 No.3

回答回数1142ベストアンサー獲得回数87

ポイント10pt

必要ないと思ってる部分以外にも削除してる可能性があります。

>print "$header¥n";

>print "$mail¥n";

>print "$footer¥n"

この3行だけ削除して、そのほかはそのままにしてください。

http://q.hatena.ne.jp/answer

id:helpme1111

回答ありがとうございます。

3行削除すると画面が真っ白になりましたが、

>print "$mail¥n";

↑これだけ削除したら、思い通りに動作してくれました。

2010/06/18 21:30:57

質問者が未読の回答一覧

 回答者回答受取ベストアンサー回答時間
1 koriki-WeKan 342 305 20 2010-06-18 12:07:33
  • id:koriki-kozou
    koriki-kozou 2010/06/18 01:45:41
    >途中までカスタマイズできた
    500エラーはスクリプトが動いていない(あるいはエラーで止まった)という事
    >送信結果が表示されてしまう
    カスタマイズ前は動いたみたいなので、他のカスタマイズした部分が原因でスクリプトが止まっているみたいですね
    ・行末を示すセミコロンが抜けていたり
    ・{と}や(と)が正しく組み合わさっていなかったり
    などが考えられるけれど、もともと270行ほどあるコードなので、返信欄への書き込みなどは難しいですね。
    はてなダイアリー(無料)でも使ってコードを全部載せるか、改造点だけを返信欄にコピペするかしてみて
    ちなみに、下記のように上下を囲むとインデントなども生きたままになる

    >||
    コードをここに書く
    ||<

    ダイアリーは下記から「おすすめ設定で開設」すれば、あっという間に設定完了で投稿できるようになる
    http://d.hatena.ne.jp/register
  • id:helpme1111
    >koriki-kozou さん

    いつもありがとうございます。
    ちょっと原因を探ってみます。。。
    今日はそろそろタイムリミットなので、
    また明日の夜こちらに書き込みます。
  • id:rouge_2008
    #
    # ブラウザ画面に送信結果を書き出す
    #
    {
    &jcode'convert(*header, "sjis");
    &jcode'convert(*footer, "sjis");

    print "Content-type: text/html\n";
    print "\n";
    print "$header\n";
    print "$footer\n";
    }

    上記のようにした場合は動作しますか?
  • id:rouge_2008
    上記コメントのように、「$header」と「$footer」の行も残して試してみてください。
    文字化けするのは、「$header」が出力されていない為です。
    ※46行目付近に「$header = <<END_OF_DATA;」の行があって、その下に出力するHTMLが定義されています。
    出力するメッセージを変更したい場合は、ここの<body>より下を編集してください。
    (「END_OF_DATA」の行までです。※この行は編集しないでください。)
    その下にさらに$footerが定義されていますので、リンク先や出力するフッターを変更したい場合は、そちらを編集します。
  • id:helpme1111
    >rouge_2008さん

    コメントありがとうございます。
    教えて頂いた通りにしたら、思い通りに動作してくれました!

    しかし、今更気づいたのですが、メールアドレスのみを送信するフォームなんですが、
    その内容を指定のアドレスに送るように設定していて、
    送信された内容の中にメールアドレス以外に、

    x = 40
    y = 2

    というのも、一緒に送られてくるんです。
    数字の部分は毎回違うし、規則性もないので、
    どういうことなのか???です。

    もし、お分かりになるようでしたら、ご回答頂けると助かります!

  • id:koriki-kozou
    koriki-kozou 2010/06/18 22:31:22
    回答1と回答2の返答は繋がってたのね。考えすぎてたみたい。いいコメントで文字化けなおってよかったね

    x、yはフォームでイメージボタンを使っている場合に送られてくる座標(クリックした座標)だから
    ・無視
    ・イメージボタンではなくsubmitボタンのstyleで画像を表示する
    どっちでもいいよ
  • id:helpme1111
    >koriki-kozou さん

    ありがとうございます!!
    XとYの問題、解決しました!!
    座標が送られてるなんて、思ってもみませんでした。
    とても勉強になります。前回も今回もとても助かりました。

    ところで、また偽物さんらしき方から回答がきていて、
    怖いので回答を開いてないです。。koriki-WeKanさんという人。。
  • id:koriki-kozou
    koriki-kozou 2010/06/18 23:00:57
    今のところ害になるような回答はしてないように見えるけど、解決したのなら開けなくてもマナー違反にはならないよ
  • id:helpme1111
    >koriki-kozou さん

    了解しました!ありがとうございます。
    もしかしたら、偶然にてるIDなだけなのかも。。?
    とりあえず解決したので、開けないことにしますw

    >rouge_2008さん

    コメント欄で回答してくださったので、
    後ほどポイントを送らせていただきます。

    みなさま、ありがとうございました!!
  • id:rouge_2008
    無事に解決して良かったです。
    ポイント送信ありがとうございました。m(__)m

この質問への反応(ブックマークコメント)

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

回答リクエストを送信したユーザーはいません