KENT-WEB サポートコーナー 過去ログ [ 0240 ]


記事No: 10041
投稿日: 2012/01/27(Fri) 23:23:28
タイトルPostmailで入力エラーページの項目を固定する方法
ID情報: sele8
投稿者: ノエ
URLhttp://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
URLhttp://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
投稿者: ノエ
URLhttp://ert8.toypark.in/0127_postmail_err_RR/postmail.html

大変ありがとうございました。
無事、順番通りに表示することができました。


記事No: 10106
投稿日: 2012/02/05(Sun) 16:13:52
タイトルRe^2: Postmailで入力エラーページの項目を固定する方法【追加】
ID情報: sele8
投稿者: ノエ
URLhttp://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
URLhttp://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
投稿者: ノエ
URLhttp://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"); ## ★追加


[検索ページ] [掲示板]