
WEB寺小屋のショッピングカートで当サイトは、現在サポートしていないようで、商品登録する際のサブルーチン処理は
下記です。下記のソースで「id_num」が同じ場合、単純にエラーを返す場合は、どのように返したら分かりません。
わかるかた教えて下さい。ちなみに下記はオリジナルソースで3行目と6行目は同じ処理をしています。
どちらか、削除しても問題ないでしょうか?
sub goods_regist {
if ( $in{'id'} eq '' ) { &error ('エラー','IDが未選択です'); }
if ( $in{'id_num'} eq '' ) { &error ('エラー','商品個別番号が未入力です'); }
if ( $in{'goods'} eq '' ) { &error ('エラー','商品名が未入力です'); }
if ( $in{'tanka'} eq '' ) { &error ('エラー','商品単価が未入力です'); }
if ( $in{'id_num'} eq '' ) { &error ('エラー','商品個別番号が未入力です'); }
if ( $in{'ad_amount'} eq 'text' && $in{'ad_amount2'} eq '' ) { &error ('エラー','個数設定が不正です'); }
if ( $in{'ad_amount'} eq 'list' && $in{'ad_amount3'} eq '' ) { &error ('エラー','個数設定が不正です'); }
$goods_data = "$goods_dir/$in{'id'}.cgi";
open (DATA,"$goods_data") || &error('オープンエラー','商品データファイルが開けません。');
@LINES = <DATA>;
close (DATA);
$count = @LINES;
if ( $count == 0 ) {
$num = 1;
} else {
@lists = $LINES[-1];
$num = $lists[0];
$num = $num + 1;
}
#if ( $in{'id_num'} != $num ) { &error ('エラー','商品個別番号が間違っています'); }
&lock2;
open (OUT,">>$goods_data") || &error('オープンエラー','メール設定ファイルが開けません。');
print OUT "$num\t$date_now\t$in{'id'}\t$in{'id_num'}\t$in{'goods'}\t$in{'tanka'}\t";
print OUT "$in{'ad_amount'}\t$in{'ad_amount2'}\t$in{'ad_amount3'}\t$in{'rem'}\t\n";
close (OUT);
A 回答 (4件)
- 最新から表示
- 回答順に表示
No.4
- 回答日時:
admin.cgi をみてみました。
1) 商品登録フォームに情報を入力し、submit すると、admin.cgi の goods_regist サブルーチンが呼び出される。
2) 管理者は、商品登録のたびに、毎回、登録フォームで商品IDを手入力する
3) 登録された商品情報は、$in{'id'}.cgi というファイルの最後の行に1行追加される。
問題は、
「すでに登録されている商品IDを入力しても、登録されてしまう」
ということでよろしいでしょうか。
これを防ぐには、2つのアプローチが考えられます。
1. 登録者が、毎回最新の商品IDを確認して、すでに登録されている商品IDを入力してしまわないようにする。
「*最新のIDは、こちらで検索して確かめてください。」というところから
2. 登録者が商品IDを入力するのではなく、プログラム内で商品IDを自動に割り当てるようにする。
プログラムで、IDを, 001, 002, 003, ... のようにカウントアップしていく、ということです。
No.3
- 回答日時:
[2] SHOP SYSTEM Final Type1
http://www.web-terakoya.net/library/doc/shopv1.h …
のshop.cgi
をながめてみましたが、質問での goods_regist というサブルーチンはありませんし、似たような記述も見あたらないようなのです。
この回答への補足
申し訳ございません。
shop.cgiではなくadmin.cgiです。
ちゃんとした補足でなくて申し訳ございません。
233行目付近のコードなのですが・・・・
お手数おかけしますが、ご回答願えればと思います。
よろしくお願いします。困ってます。
No.2
- 回答日時:
「Web寺子屋」(www.web-terakoya.net) には、ショッピングカートのCGIがいろんなタイプがあるようですが、どのタイプなのでしょうか?
プログラム全体をみてみないと、ここのサブルーチンでやりたい処理ができるかどうかは、わかりません。
この回答への補足
[2] SHOP SYSTEM Final Type1です。
http://www.web-terakoya.net/library/doc/shopv1.h …
のshop.cgiファイルです。
ご回答お願いします。
No.1
- 回答日時:
>「id_num」が同じ場合、
意味が不明です。「id_num」と何が同じになるのでしょうか?
>ちなみに下記はオリジナルソースで3行目と6行目は同じ処理をしています。
>どちらか、削除しても問題ないでしょうか?
問題ありません。
エラーを返したい場合は
&error ('エラー','XXXが間違っています');
とすればいいです。
この回答への補足
説明不足ですいません。
「id_num」が同じ場合というのは、商品登録画面上で、商品番号が登録できます。id_numに商品番号が入ります。
現在の仕様では、重複して登録できてしまいますので、防止させるためです。ここのサブルーチン処理ではできないのでしょうか?
よろしくお願いします。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
データベースが返すエラー文字...
-
モジュールとクラスの違いって...
-
「デバイスは PRN を初期化でき...
-
SendKeysの使い方について
-
acwzlibとは?
-
クリアーとデリート
-
【Excel2016】結合されたセルを...
-
例外処理のフローチャートの記...
-
同一筐体におけるPerlの複数バ...
-
Win32でInputBoxを実装するには?
-
ユーザー定義関数に#NAME?が返...
-
bad interpreter:エラーについて
-
cygwinでcshが認識されず困って...
-
flockの挙動がおかしい。。。
-
Sub Workbook_Open()でユーザー...
-
VBAでoutlook365が起動しません。
-
グラフのX,Y座標を取得したい
-
クラスモジュールを使わないと...
-
VBのフォームモジュールと標準...
-
Friend は標準モジュールじゃ宣...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
VBSがコンパイルエラーになりま...
-
教えて下さい。
-
perlをバージョンアップしたら...
-
メールアドレスについて
-
w3cの検証エラー?
-
ホームページをHTTPS化したらbi...
-
WebClientの文字列送信にてエラー
-
Pythonプログラミングでエラー
-
erf(x)とerfc(x)のカタカナ読み...
-
powershellで引数受け取り時に...
-
CGIの接続エラー
-
POSTで送信するとエラーになる
-
【python】requestsでdataとし...
-
VBscriptのエラーメッセージの...
-
ruby mechanize アクセス出来ない
-
例外処理のフローチャートの記...
-
「デバイスは PRN を初期化でき...
-
Excel VBAでリンク切れをチェッ...
-
Excel VBA 定義されたプロージ...
-
Application.OnKey:項目入力中...
おすすめ情報