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


記事No: 2457
投稿日: 2007/12/26(Wed) 18:06:48
タイトルpostmail 4.2で非表示にするには?
ID情報: aoimina
投稿者: ぷちたまご
URLhttp://www

お世話になります。

postmail 4.2を使わせていただこうと設定作業を進めているところです。
こんな風に出来たらいいなぁでいろいろ過去ログを見させていただいて、ある程度は出来たのですが、未入力の場合表示しない方法だけがどうして良いのかが分かりません。

postmail v3.41で非表示をするには?
http://www.kent-web.com/support/old/67/0338.html
の質問を見ながら記載されているものをコピペで貼り付けてみたのですが、自分側と相手側に同じ内容のものを届く設定にしているせいか、相手には全く届かずに、自分側に2通届いてしまい、なおかつ時間等は表示されるけれど、メッセージが空白という状態です。

で、慌てて元に戻して、どうしたものかと思っているところです。

今現在のソースです。
http://www.atr-robo.com/mail/test.txt

私はCGIの知識は全くないので、無謀なのは重々承知の上ですが、どなたかアドバイスをいただけませんでしょうか?
どうぞよろしくお願いします。


記事No: 2459
投稿日: 2007/12/26(Wed) 23:50:57
タイトルRe: postmail 4.2で非表示にするには?
ID情報: fuyuki
投稿者: BAL
URLhttp://f43.aaa.livedoor.jp/~sumure/

> お世話になります。
>
> postmail 4.2を使わせていただこうと設定作業を進めているところです。
> こんな風に出来たらいいなぁでいろいろ過去ログを見させていただいて、ある程度は出来たのですが、未入力の場合表示しない方法だけがどうして良いのかが分かりません。
>
> postmail v3.41で非表示をするには?
> http://www.kent-web.com/support/old/67/0338.html
> の質問を見ながら記載されているものをコピペで貼り付けてみたのですが、自分側と相手側に同じ内容のものを届く設定にしているせいか、相手には全く届かずに、自分側に2通届いてしまい、なおかつ時間等は表示されるけれど、メッセージが空白という状態です。
>
> で、慌てて元に戻して、どうしたものかと思っているところです。
>
> 今現在のソースです。
> http://www.atr-robo.com/mail/test.txt
>
> 私はCGIの知識は全くないので、無謀なのは重々承知の上ですが、どなたかアドバイスをいただけませんでしょうか?
> どうぞよろしくお願いします。

以下の修正を。

$in{$key} =~ s/\0/ /g;
$in{$key} =~ s/\r\n/<br>/g;
$in{$key} =~ s/\r/<br>/g;
$in{$key} =~ s/\n/<br>/g;
if ($in{$key} =~ /<br>$/) {
while ($in{$key} =~ /<br>$/) {
$in{$key} =~ s/<br>$//g;
}
}

#$tmp = $cell; ## ←コメントアウト
$tmp = $in{$key} ? $cell : ''; ## ←追加
$tmp =~ s/\$left/$key/;
$tmp =~ s/\$right/$in{$key}/;

print "$tmp\n";
$hidden .= "<input type=\"hidden\" name=\"$key\" value=\"$in{$key}\" />\n" if($in{$key}); ## ←修正

$bef = $key;


記事No: 2461
投稿日: 2007/12/27(Thu) 00:06:28
タイトルRe: postmail 4.2で非表示にするには?
ID情報: para
投稿者: Y50 庄助
URLhttp://www5e.biglobe.ne.jp/~begain/

> お世話になります。
>
> postmail 4.2を使わせていただこうと設定作業を進めているところです。
> こんな風に出来たらいいなぁでいろいろ過去ログを見させていただいて、ある程度は出来たのですが、未入力の場合表示しない方法だけがどうして良いのかが分かりません。
>
> postmail v3.41で非表示をするには?
> http://www.kent-web.com/support/old/67/0338.html
> の質問を見ながら記載されているものをコピペで貼り付けてみたのですが、自分側と相手側に同じ内容のものを届く設定にしているせいか、相手には全く届かずに、自分側に2通届いてしまい、なおかつ時間等は表示されるけれど、メッセージが空白という状態です。
>
> で、慌てて元に戻して、どうしたものかと思っているところです。
>
> 今現在のソースです。
> http://www.atr-robo.com/mail/test.txt
>
> 私はCGIの知識は全くないので、無謀なのは重々承知の上ですが、どなたかアドバイスをいただけませんでしょうか?
> どうぞよろしくお願いします。

http://www.atr-robo.com/mail/mail.html

postmail v4.2で未入力の非表示方です。
postmail.cgi 573行目
my $tmp = $cell;
$tmp =~ s/\$left/$key/;

my $f = 0;
foreach $err (@err) {
if ($err eq $key) { $f++; last; }
}
if ($f) {
$tmp =~ s|\$right|<span style="color:$alm_col">$keyは入力必須です</span>|;
} elsif (defined($err{$key})) {
$tmp =~ s|\$right|<span style="color:$alm_col">$keyの入力内容が大きすぎます</span>|;
} else {
$in{$key} =~ s/\r\n/<br>/g;
$in{$key} =~ s/\r/<br>/g;
$in{$key} =~ s/\n/<br>/g;
$in{$key} =~ s/\0/ /g;

$tmp =~ s/\$right/$in{$key}/;
}

my $tmp = $cell;

my $f = 0;
foreach $err (@err) {
if ($err eq $key) { $f++; last; }
}
if ($f) {
$tmp =~ s/\$left/$key/;
$tmp =~ s|\$right|<span style="color:$alm_col">$keyは入力必須です</span>|;
} elsif (defined($err{$key})) {
$tmp =~ s/\$left/$key/;
$tmp =~ s|\$right|<span style="color:$alm_col">$keyの入力内容が大きすぎます</span>|;
} else {
if ($in{$key}) {
$tmp =~ s/\$left/$key/;
$in{$key} =~ s/\r\n/<br>/g;
$in{$key} =~ s/\r/<br>/g;
$in{$key} =~ s/\n/<br>/g;
$in{$key} =~ s/\0/ /g;

$tmp =~ s/\$right/$in{$key}/;
} else {next;}
}

345行目
if ($key eq "need" || $key eq "match" || ($in{'match'} && $key eq $match2)) {

if ($key eq "need" || $key eq "match" || ($in{'match'} && $key eq $match2) || $in{$key} eq'') {
として下さい。
エラー画面なども非表示になると思います。


記事No: 2474
投稿日: 2007/12/27(Thu) 18:09:09
タイトル出来ました!
ID情報: aoimina
投稿者: ぷちたまご
URLhttp://www

BAL 様 Y50庄助 様

アドバイスありがとうございました。
無事出来ました。

大変助かりました。

今現在、スタイルシートを勉強中なので、それがある程度出来る様になれば、次はCGIの勉強にTRYしてみたいです。

年末のお忙しい中なのに、親切に教えてくださり本当にありがとうございました。

KENT様を始め、支援の方々も良い年末をお過ごし下さいませ。
改めて本当にありがとうございました。


[検索ページ]