CGI-BBS > 情報収集 > フォームメール > 電話番号などを半角英数で送るように制限をつけたい。


カレッヂ
カレッヂ


質問者 真晴  投稿日 8/28(火) 01:26:08
フォームメールのプログラミングに奮闘中です。
電話番号とかfax番号などを半角英数で受信したいと思っています。
そのため、その項目に全角で入力された場合は
”半角で入力ください”などのエラーを出したいと思っています。
もしこのような方法をご存じでしたら是非おしえてください。
回答者 いのちゃん  [削除]  投稿日 8/28(火) 03:00:09
Line1228辺り(minibbs-ex-1.18/bbs.cgi)

if ($in{'email'} ne '' && $in{'email'} !~ /\b[-\w.]+@[-\w.]+\.[-\w]+\b/) { push(@ERR,"Eメールを半角で正しく記述してください"); undef $in{'email'}; }
elsif ($in{'email'} =~ /[;:,=\s]+/) { push(@ERR,"Eメールには;:,=が使えません"); }

探せはこの辺の条件のスクリプトはよく見かけますがご希望に添っている内容か
どうかは当方はプログラマーでありせんのでよく分かりませんが...。
質問者 真晴  [削除]  投稿日 8/29(水) 23:41:56
ありがとうございます。
メールについてはうまくいくのですが、
その他の数字だけのモノにはうまくいかないようです。
どうも@が関係してるのだと思うのですが
「!~ このなか/」をいじれば良いことまではわかりました・・・。
でもこの中になんて書けば半角かどうかになるのかがまだわかりません・・・。
もし判ればまたおしえてください。
回答者 いのちゃん  [削除]  投稿日 8/30(木) 00:03:43
簡易マルチBBSv1.00 Line630辺りですが前回の分とちょっと異なっているようです。

if ($in{'EMAIL'} ne '' && !($in{'EMAIL'} =~ /\b[-\w.]+@[-\w.]+\.[-\w]+\b/)) { &Error("未記入があります","Eメールを半角で正しく入力してください."); }

以下は前回の分です。
if ($in{'email'} ne '' && $in{'email'} !~ /\b[-\w.]+@[-\w.]+\.[-\w]+\b/) { push(@ERR,"Eメールを半角で正しく記述してください"); undef $in{'email'}; }
elsif ($in{'email'} =~ /[;:,=\s]+/) { push(@ERR,"Eメールには;:,=が使えません"); }
回答者 しあわせのツボ  [削除]  投稿日 8/30(木) 18:21:37
チェックしたい変数が$varだとした場合、
if ($var =~ /[^\x20-\x7e]/) { エラー処理; }
とすれば、半角英数以外の文字があればエラー処理がされますし、
if ($var =~ /[^\d\-]/) { エラー処理; }
なら数字か-(電話番号・郵便番号等はこの形式が一般的ですね)だけが通るようになります。
質問者 真晴  [削除]  投稿日 9/11(火) 00:24:06
ありがとうございました。やっとできました
お礼の返事がおそくなってまことにもうしわけありませんでした。

このページは終了したので返信(回答)は書きこめません

Web裏技