CGI-BBS > SO−HO > ショッピングバスケット > ショッピングバスケットについて全角の数量を処理したい


(株)友林堂
(株)友林堂


データ復旧、即日 データ¨復旧¨テラステーション¨修理

質問者 はる  投稿日 2010/6/21(月) 23:51:56
ショッピングバスケットプロV6を使用しております。

商品の数量について、
最初の一文字が半角数字、それ以降の文字が全角で入力された場合(例:10(1は半角で0は全角))、
「商品の数量は半角数字で入力してください。」を表示するエラー処理がされず、
最初の半角1文字の数量(例であれば数量1)で処理されてしまいます。
全角数字が数量の2文字目以降にあってもエラー処理(「商品の数量は半角数字で入力してください。」
を表示する)されるようにしたいです。

cart.cgiの以下の部分を変更すると出来そうな気はするのですが、
具体的にどのように記述すると出来るのか、どなたかご教授頂きたくお願い致します。




######################################################################################
#
# 買い物かごに商品をいれるプログラム
#
######################################################################################

    if (!-e $tmp) { &error("#設定エラー","作業用ファイルを展開するフォルダが見つかりません。"); }

    if ($in{'_gname'} eq "") { &error("#設定エラー","商品名を示すラベルがありません。"); }
    if ($in{'_gfee'} == 0) { &error("#設定エラー","商品単価を示すラベルが無いか、数値ではありません。"); }
→  if ($in{'_kazu'} == 0) { &error("#数量が無効です","商品の数量は半角数字で入力してください。"); }

【プロバイダ】http://www.biglobe.ne.jp/
【習熟度】多少の改造ができる

質問者 はる  [削除]  投稿日 2010/6/22(火) 17:43:53
自己レスです。

cart.cgiの以下の部分を

if ($in{'_kazu'} == 0) { &error("#数量が無効です","商品の数量は半角数字で入力してください。"); }

→   if ($in{'_kazu'} =~ /\D/) { &error("#数量が無効です","商品の数量は半角数字で入力してください。"); }

と修正することで解決致しました。
お騒がせ致しました。



######################################################################################
#
# 買い物かごに商品をいれるプログラム
#
######################################################################################

    if (!-e $tmp) { &error("#設定エラー","作業用ファイルを展開するフォルダが見つかりません。"); }

    if ($in{'_gname'} eq "") { &error("#設定エラー","商品名を示すラベルがありません。"); }
    if ($in{'_gfee'} == 0) { &error("#設定エラー","商品単価を示すラベルが無いか、数値ではありません。"); }
→  if ($in{'_kazu'} == 0) { &error("#数量が無効です","商品の数量は半角数字で入力してください。"); }

返信(回答)する

 


データ復旧、即日 データ¨復旧¨テラステーション¨修理 Web裏技