CGI-BBS > SO−HO > ショッピングバスケット > v6.09について$DELETED{$1} = 1;のあたりを解説して欲しい。


カレッヂ
カレッヂ


質問者 k-taro  投稿日 2/27(木) 15:58:46
前に似たような質問をしていますが
その続きみたいなものですが、
carg.cgiの始めの方で

		while (<ORDER>) {
			chomp;
			if (/^#|^$/) { next; }
				if (/^\*(\d+)/) {
					$DELETED{$1} = 1;
					$del ++;
				}else {
					 push(@CARGO, $_);
				}
とありますが、それを
		while (<ORDER>) {
			chomp;
			if (/^#|^$/) { next; }
				if (/^\*(\d+)/) {
					$DELETED{$1} = 1;
					$del ++;
				}
				push(@CARGO, $_);
		}
としてもよさそうに思えますが、だめですね。
					$DELETED{$1} = 1;
					$del ++;
の部分は単にフラグを立てて、カウントしているだけと思いますが、
削除押したとき、空のデータが入るのでしょうか、買い物カゴには
$code.$name,$feeは削除されますが、*、円それと削除ボタンだけが取り残されます。
なぜだか分かりません。
教えていただければ幸いです。

プロバイダ参照:
サーバのOS:UNIXサーバ
パソコンのOS:Mac9
エディタ:Jedit4.0
FTPソフト:Fetch3.0
サーバ移転:していない
改造:している 改造前正常動作
CGI習熟度:middle

質問者 k-taro  [削除]  投稿日 2/27(木) 16:23:24
投稿してから分かりました。
			if (/^#|^$/) { next; }
				if (/^\*(\d+)/) {
					$DELETED{$1} = 1;
					$del ++;
					next;
				}
				push(@CARGO, $_);
		}
と 初心者用に書換えました。
$COOKIE{'CART'}\.bk6の
*(\d+)の行を読み飛ばすという意味だったんですね。
お騒がせしました。

返信(回答)する

 


Web裏技