記事No | : 10041 |
投稿日 | : 2012/01/27(Fri) 23:23:28 |
タイトル | : Postmailで入力エラーページの項目を固定する方法 |
ID情報 | : sele8 |
投稿者 | : ノエ |
URL | : http://ert8.toypark.in/0127_postmail_err_RR/postmail.html |
お世話になります。
入力エラーページで項目の順番を固定する方法について質問させていただきます。
なお、Postmail(Shift_JIS)ver 6.0を使わせていただいております。
Postmail.htmlでは
お名前(必須) name
メールアドレス(必須) email
選択(必須)kubun
内容(必須)info
選択2 know
上記のように設置しているのですが、項目に何も入れない状態で実行すると
お名前(必須)
メールアドレス(必須)
内容(必須)
選択(必須)
選択2
エラーページでは、このように内容(必須)と選択(必須)が反転してしまいます。
そこで
http://www.kent-web.com/support/oldlog/0004/0132.html
http://www.kent-web.com/support/oldlog/0001/0021.html
こちらを参考にPostmail.cgiを以下のように書き換えてみました。
# 内容展開
my $bef;
#foreach my $key (@$key) { ## ←コメントアウト
foreach my $key (split(/ /,$in{'kubun'})) { ## ←追加
next if ($key eq "need");
next if ($key eq "match");
next if ($$in{match} && $key eq $match2);
next if ($bef eq $key);
next if($key eq 'kubun'); ## ←追加
next if ($key eq "x");
next if ($key eq "y");
next if ($key eq "subject");
このように記述し、実行したところ
Software error:
Global symbol "%in" requires explicit package name at /home/vhosts/ert8.toypark.in/public_html/0127_postmail_err_RR/ppp/postmail.cgi line 407, <DATA> line 855.
Execution of /home/vhosts/ert8.toypark.in/public_html/0127_postmail_err_RR/ppp/postmail.cgi aborted due to compilation errors.
For help, please send mail to the webmaster (root@localhost), giving this error message and the time and date of the error.
このようにエラーが帰ってきました。
postmail.htmlで記述した順番のままにするにはどうすればよろしいのでしょうか。
よろしければ教えてください。
記事No | : 10042 |
投稿日 | : 2012/01/28(Sat) 14:37:11 |
タイトル | : Re: Postmailで入力エラーページの項目を固定する方法 |
ID情報 | : Fuyuki |
投稿者 | : BAL |
URL | : http://www26.tok2.com/home/sumire1100/ |
v6.0以降の場合は以下のとおりになります。
●postmail.cgi
#-----------------------------------------------------------
# プレビュー
#-----------------------------------------------------------
-- 省略 --
# 項目
my ($bef,$item);
foreach my $key (@$key) {
next if ($bef eq $key);
next if ($key eq "x");
next if ($key eq "y");
next if ($key eq "need");
next if ($key eq "match");
next if ($key eq "captcha");
next if ($$in{match} && $key eq $match2);
next if($key eq 'orderlist'); ## ★追加
if ($key eq 'subject') {
#-----------------------------------------------------------
# 入力エラー表示
#-----------------------------------------------------------
-- 省略 --
# 内容展開
my ($bef,%in); ## ★修正
#foreach my $key (@$key) { ## ★コメントアウト
foreach my $key (split(/ /,$$in{orderlist})) { ## ★追加
next if ($key eq "need");
next if ($key eq "match");
next if ($$in{match} && $key eq $match2);
next if ($bef eq $key);
next if ($key eq "x");
next if ($key eq "y");
next if ($key eq "subject");
●postmail.htmlに以下追加
<input type="hidden" name="orderlist" value="name email kubun info" />
記事No | : 10067 |
投稿日 | : 2012/01/30(Mon) 00:03:43 |
タイトル | : Re^2: Postmailで入力エラーページの項目を固定する方法 |
ID情報 | : sele8 |
投稿者 | : ノエ |
URL | : http://ert8.toypark.in/0127_postmail_err_RR/postmail.html |
大変ありがとうございました。
無事、順番通りに表示することができました。
記事No | : 10106 |
投稿日 | : 2012/02/05(Sun) 16:13:52 |
タイトル | : Re^2: Postmailで入力エラーページの項目を固定する方法【追加】 |
ID情報 | : sele8 |
投稿者 | : ノエ |
URL | : http://ert8.toypark.in/0205_postmail_orderlist/postmail.html |
> v6.0以降の場合は以下のとおりになります。
>
> ●postmail.cgi
>
> #-----------------------------------------------------------
> # プレビュー
> #-----------------------------------------------------------
> -- 省略 --
>
> # 項目
> my ($bef,$item);
> foreach my $key (@$key) {
> next if ($bef eq $key);
> next if ($key eq "x");
> next if ($key eq "y");
> next if ($key eq "need");
> next if ($key eq "match");
> next if ($key eq "captcha");
> next if ($$in{match} && $key eq $match2);
> next if($key eq 'orderlist'); ## ★追加
> if ($key eq 'subject') {
>
>
> #-----------------------------------------------------------
> # 入力エラー表示
> #-----------------------------------------------------------
> -- 省略 --
>
>
> # 内容展開
> my ($bef,%in); ## ★修正
> #foreach my $key (@$key) { ## ★コメントアウト
> foreach my $key (split(/ /,$$in{orderlist})) { ## ★追加
> next if ($key eq "need");
> next if ($key eq "match");
> next if ($$in{match} && $key eq $match2);
> next if ($bef eq $key);
> next if ($key eq "x");
> next if ($key eq "y");
> next if ($key eq "subject");
>
>
> ●postmail.htmlに以下追加
>
> <input type="hidden" name="orderlist" value="name email kubun info" />
先日、こちらの方法を教えていただいたのですが
init.cgiで
# 送信前確認
# 0=no 1=yes
$cf{preview} = 0;
このように設定しますと
自動返信メールが以下のように返ってきました。
ー省略ー
────────────────────────────
■お問い合わせ内容
────────────────────────────
orderlist : name email kubun info
お名前 : テスト
メールアドレス : ***@***.ne.jp
選択 : イ
内容 :
送信前チェックなしでテスト
orderlistテスト
選択2 : い
────────────────────────────
【orderlist : name email kubun info】という文章は、自動返信メールにもこちらに届くメールにも記載されておりました。
init.cgiの送信前確認を0にした状態で
【orderlist : name email kubun info】を表示させない方法はございますでしょうか。
よろしければ教えてください。
記事No | : 10107 |
投稿日 | : 2012/02/05(Sun) 17:11:46 |
タイトル | : Re^3: Postmailで入力エラーページの項目を固定する方法【追加】 |
ID情報 | : Fuyuki |
投稿者 | : BAL |
URL | : http://www26.tok2.com/home/sumire1100/ |
> init.cgiの送信前確認を0にした状態で
> 【orderlist : name email kubun info】を表示させない方法はございますでしょうか。
>
> よろしければ教えてください。
以下の修正を。
●postmail.cgi
#-----------------------------------------------------------
# 送信実行
#------------------------------------------------------
-- 省略 --
# 本文キーを展開
my ($bef,$mbody,$log);
foreach (@$key) {
# 本文に含めない部分を排除
next if ($_ eq "mode");
next if ($_ eq "need");
next if ($_ eq "match");
next if ($_ eq "subject");
next if ($$in{match} && $_ eq $match2);
next if ($bef eq $_);
next if($_ eq "orderlist"); ## ★追加
記事No | : 10108 |
投稿日 | : 2012/02/05(Sun) 17:56:40 |
タイトル | : Re^4: Postmailで入力エラーページの項目を固定する方法【追加】 |
ID情報 | : sele8 |
投稿者 | : ノエ |
URL | : http://ert8.toypark.in/0205_postmail_orderlist/postmail.html |
BAL様
いつもありがとうございます。
下記の方法を試したところ、無事【orderlist : name email kubun info】が出ないメールを受け取ることができました。
大変助かりました。
ありがとうございました。
> > init.cgiの送信前確認を0にした状態で
> > 【orderlist : name email kubun info】を表示させない方法はございますでしょうか。
> >
> > よろしければ教えてください。
>
>
> 以下の修正を。
> ●postmail.cgi
>
> #-----------------------------------------------------------
> # 送信実行
> #------------------------------------------------------
> -- 省略 --
> # 本文キーを展開
> my ($bef,$mbody,$log);
> foreach (@$key) {
>
> # 本文に含めない部分を排除
> next if ($_ eq "mode");
> next if ($_ eq "need");
> next if ($_ eq "match");
> next if ($_ eq "subject");
> next if ($$in{match} && $_ eq $match2);
> next if ($bef eq $_);
> next if($_ eq "orderlist"); ## ★追加