#!/usr/local/bin/perl
#///////////////////////////////////////////////////////////////////////////////
# Super Shop Ver2.04
# ----- 2002(C) WEB INVENTOR(Solve) -----
# solve@wb-i.net
# http://wb-i.net/
#///////////////////////////////////////////////////////////////////////////////
#================================ [注意事項] ===================================
# このスクリプトはシェアウエアです。このスクリプトを使用したいかなる損害に対して
# も作者は一切の責任を負いません。
#====================================使用法=====================================
# 次のようにして呼び出してください。
# 1.商品画面
# http://・・/s-shop.cgi
# 2.検索窓の設置
#
# 3.キーワード及び分類表からの呼び出しかた
# 当店お勧め
# 分類A
# $class_all
# 4.管理者用
# http://・・/s_shop.cgi?mode=adm1
#
#===============================================================================
# ▼設定▼
#===============================================================================
# jcode.plへのパス
require './jcode.pl';
# cgi-lib.plへのパス
require './cgi-lib.pl';
# MIMEコード変換ライブラリ
require './mimew.pl';
# ===============================================================================
# ▲設定終了▲
# ===============================================================================
&ReadParse;
while (($key,$val) = each %in) {
# &jcode'convert(*val, "sjis", "", "z");
$form{$key} = $val;
}
while (($key,$val) = each %in) {
if ($key ne "gazou") {
# &jcode'convert(*val, "sjis", "", "z");
$val =~ s/<>//g;
if($form{'mode'} eq 'adm4' || $form{'mode'} eq 'order_form' || $form{'mode'} eq 'order_mail'){
$val =~ s/"/\"/g;
if ($key eq "MESS" || $key eq "setumei") {
$val =~ s/<//g;
$val =~ s/
/\n/g;
$val =~ s/\.\n/\. \n/g;
}else{
$val =~ s/</g;
$val =~ s/>/>/g;
$val =~ s/\r\n//g;
$val =~ s/\r//g;
$val =~ s/\n//g;
$val =~ s/\s//g;
}
}else{
$val =~ s/\"/"/g;
$val =~ s/\0/ /g;
if ($key eq "MESS" || $key eq "setumei") {
$val =~ s/\r\n/
/g;
$val =~ s/\r/
/g;
$val =~ s/\n/
/g;
if ($val =~ /
$/) {
while ($val =~ /
$/) { $val =~ s/
$//g; }
}
# $val =~ s/\s//g;
} else {
$val =~ s/</g;
$val =~ s/>/>/g;
$val =~ s/\r\n//g;
$val =~ s/\r//g;
$val =~ s/\n//g;
$val =~ s/\s//g;
}
}
}
$in{$key} = $val;
}
#=================注文加算============================================
if($in{'order'} eq ""){
# Cookieの値を得る
&getCookie();
$in{'order'} = $COOKIE{'ORDER'};
}
$order=$in{'order'};
$order_new =$in{'g_no'}.",".$in{'op1'}.",".$in{'op2'};
if($in{'amount'} ne "" and $in{'amount'} ne "0"){
if($order eq ""){
$order =$in{'g_no'}.",".$in{'op1'}.",".$in{'op2'}.":".$in{'amount'};
}else{
@order_1 = split(/!/,$order);
foreach (@order_1) {
($i,$j) = split(/:/,$_);
if($i eq $order_new){
$j = $j + $in{"amount"};
if($order_2 eq ""){
$order_2 =$order_new.":".$j;
}else{
$order_2 .="!".$order_new.":".$j;
}
$k =1;
}else{
if($order_2 eq ""){
$order_2 =$_;
}else{
$order_2 .="!".$_;
}
}
}
if($k ne 1){
$order .="!".$in{'g_no'}.",".$in{'op1'}.",".$in{'op2'}.":".$in{'amount'};
}else{
$order =$order_2;
}
}
#クッキーの設定
print &setCookie_0("ORDER", $order);
}
$in{'order'}=$order;
#====================================================================
# 設定ファイル
require './s_set.pl';
#===== 戻り先========================================================
$save_data="$script?&keyword=$in{'keyword'}&FF=$in{'FF'}&class=$in{'class'}";
$modoru_adding = "$save_data&mode=adm2&pass=$adm_pass";
$modoru_dell = "$save_data&mode=adm3&pass=$adm_pass";
$modoru_renew = "$save_data&mode=adm4&pass=$adm_pass";
$modoru_goods ="$script?order=$in{'order'}&class=$in{'class'}&keyword=$in{'keyword'}&FF=$in{'FF'}&price_sort=$in{'price_sort'}";
$modoru_goods_2 ="$script?class=$in{'class'}&keyword=$in{'keyword'}&FF=$in{'FF'}&price_sort=$in{'price_sort'}";
$modoru_goods_end ="$script?class=$in{'class'}&keyword=$in{'keyword'}&FF=$in{'FF'}&price_sort=$in{'price_sort'}";
#====================================================================
if (!open(IN,"$data_file")) { &error('データベース読取エラー','復旧をお待ちください.'); }
@BASE = ;
close(IN);
if($in{'price_sort'} ne 1){
@BASE = reverse @BASE;
}else{
@BASE = sort { (split(/\<\>/,$a))[8] <=> (split(/\<\>/,$b))[8] } @BASE;
}
$hit = 0;
$next_num = '';
$over_no = 0;
if($in{'mode'} eq 'adm3' or $in{'mode'} eq 'addell'){
$page =$page_dell;
}
#====================================================================
if ( $in{'mode'} eq 'adding' ) { &adding; exit;}
if ( $in{'mode'} eq 'renew' ) { &renew; exit;}
if ( $in{'mode'} eq 'dell' ) { &dell; exit;}
if ( $in{'mode'} eq 'look' ) { &look; exit;}
if ( $in{'mode'} eq 'order_form' ) { &order_form; exit;}
if ( $in{'mode'} eq 'sure' ) { &sure; exit;}
if ( $in{'mode'} eq 'order_mail' ) { &order_mail; exit;}
if ( $in{'mode'} eq 'p_wide' ) { &p_wide; exit;}
#====================================================================
# Cookieの値を得る
&getCookie();
$classmei = $COOKIE{'BUNRUIMEI'};
$ff_no = $COOKIE{'FF'};
$pas_word = $COOKIE{'WORD'};
if($in{'class'} ne ""){
$classmei = $in{'class'};
print &setCookie("BUNRUIMEI", $classmei);
}
if($in{'FF'} ne ""){
$ff_no = $in{'FF'};
print &setCookie('FF', $ff_no);
}
if($in{'keyword'} ne "" or $in{'superkey'} eq "1"){
$pas_word = $in{'keyword'};
print &setCookie('WORD', $pas_word);
}
$in{'keyword'} = $pas_word;
$in{'class'}=$classmei;
#===================================================================
$data_su=0;
$data_ff =0;
foreach $num (0 .. $#BASE) {
$data = $data2 = $BASE[$num];
&jcode'convert(*data,'sjis');
($goods_no,$name,$kigou,$option,$option2,$class,$setumei,$fcolor,$price,$tani,$zaiko,$limit,$tail,$bikou) = split(/\<\>/,$data);
if($pas_word ne "") {
# 入力内容を整理
$word = $pas_word;
$word =~ s/ / /g;
$word =~ s/\t/ /g;
@pairs = split(/ /,$word);
$class_mei =$class_tb[$class];
# 検索処理
$flag_k = 0;
foreach $pair (@pairs){
if (index($kigou,$pair) >= 0) {
next;
}elsif (index($name,$pair) >= 0) {
next;
}elsif (index($goods_no,$pair) >= 0) {
next;
}elsif (index($class_mei,$pair) >= 0) {
next;
}elsif (index($option,$pair) >= 0) {
next;
}elsif (index($setumei,$pair) >= 0) {
next;
}elsif (index($bikou,$pair) >= 0) {
next;
}elsif (index($price,$pair) >= 0) {
next;
}elsif (index($class,$pair) >= 0) {
next;
}
$flag_k = 1;
last;
}
if ($flag_k == 1) { next; }
}
if ($classmei ne "all" && $classmei ne "") {
if ($class eq $classmei) { ; } else { next; }
}
if ($in{'id'} ne '' && $in{'mode'} eq 'adm4') {
if ($goods_no eq $in{'id'}) {
push(@NEW,$data2);
last;
} else { next; }
}
$data_su++;
# 検索終了処理
if ($hit == $page) { $next_num = $data_ff; $over_no ++; $hit++; next; }
elsif($hit < $page && $data_ff >= $ff_no){
push(@NEW,$data2); $hit++;
}elsif($hit > $page && $data_ff >= $ff_no){
$over_no ++;
}
$data_ff ++;
}
if($over_no > $page){
$over_no = $page;
}
#=========================================================================================
if ( $in{'mode'} eq 'adm1' ) { &adm1; exit;}
elsif ( $in{'mode'} eq 'adm2' ) { &adm_add; exit;}
elsif ( $in{'mode'} eq 'adm3' ) { &adm_dell; exit;}
elsif ( $in{'mode'} eq 'adm4' ) { &adm_renew; exit;}
else { &shop_form; exit;}
#=============================画像の拡大=================================================
sub p_wide {
&html_header();
print <<"EOF";
EOF
print <<"EOF";
EOF
print "$foot