#!/usr/bin/perl
#Cart MAX ver.6
$ENV{'TZ'} = "JST-9";
#----ライブラリ読込み---------------
unless(-e 'lib/conf_common.pl'){
&error("lib/conf_common.plがありません。");
}
require 'lib/conf_common.pl';
unless(-e 'lib/common2.cgi'){
&error("lib/common2.cgiがありません。");
}
require 'lib/common2.cgi';
unless(-e 'lib/func.pl'){
&error("lib/func.plがありません。");
}
require 'lib/func.pl';
#-----変数--------------------------
$cartpl='lib/cart/cart.pl';
$smartpl='lib/cart/smart.pl';
$keitaipl='lib/cart/keitai.pl';
$searchpl='lib/cart/search.pl';
$otoiawasepl='lib/cart/otoiawase.pl';
$reviewpl='lib/cart/review.pl';
$memberpl='lib/cart/member.pl';
$keitaimemberpl='lib/cart/keitai_member.pl';
$smartmemberpl='lib/cart/smart_member.pl';
$postalpl='lib/cart/postal.pl';
$collectpl='lib/cart/collect.pl';
$error='../skin_cgi/pc_error.html';
$maxsize='80000';
$script='main.cgi';
$l_color="#0000ff";
#-----------------------------------
&Dcd;
sub Dcd{
my($buff,$name,$value,$pair,@pairs,$dum,$opname);
if($ENV{'REQUEST_METHOD'} eq "POST"){
if($ENV{'CONTENT_LENGTH'} > $maxsize){
&error("投稿量が多すぎます。");
}
read(STDIN,$buff,$ENV{'CONTENT_LENGTH'});
}
else{
$buff=$ENV{'QUERY_STRING'};
}
if(!$buff){
return;
}
@pairs=split(/&/,$buff);
foreach $pair(@pairs){
($name,$value)=split(/=/,$pair);
$value=~tr/+/ /;
$value=~s/%([a-fA-F0-9][a-fA-F0-9])/pack("H2",$1)/eg;
$value=~s/&/&/g;
$value=~s/</g;
$value=~s/>/>/g;
$value=~s/"/”/g;
$value=~s/'/’/g;
$value=~s/,/,/g;
if($name eq "comment"){
$value=~s/\x0D\x0A/
/g;
$value=~s/\x0D/
/g;
$value=~s/\x0A/
/g;
}
else{
$value=~s/\x0D\x0A//g;
$value=~s/\x0D//g;
$value=~s/\x0A//g;
}
$opflag=0;
if($name=~/^op/){
$opflag=1;
($dum,$opname)=split(/_/,$name);
if($opname){
$opname=~tr/+/ /;
$opname=~s/%([a-fA-F0-9][a-fA-F0-9])/pack("H2",$1)/eg;
}
push @opvalue,$value;
push @opnamearray,$opname;
}
if(!$opflag){
$FORM{$name}=$value;
}
}
}
$DUMMY_ref=&Func::GetCookie;
($lib,$mode)=split(/_/,$FORM{'mode'});
if($lib eq 'cart' || $lib eq 'smart' || $lib eq 'keitai'){
if(!-e $cartpl){
&error("cartplがありません。");
}
require $cartpl;
if($lib eq 'smart'){
if(!-e $smartpl){
&error("smartplがありません。");
}
require $smartpl;
if($mode eq ''){
$mode='top';
}
}
elsif($lib eq 'keitai'){
if(!-e $keitaipl){
&error("keitaiplがありません。");
}
require $keitaipl;
if($mode eq ''){
$mode='top';
}
$DUMMY_ref=&Cart::SetDUMMY(\%FORM);
}
if($mode eq 'del'){
&Cart::Del(\%FORM,$DUMMY_ref);
}
elsif($mode eq 'clear'){
&Cart::Clear(\%FORM,$DUMMY_ref);
}
elsif($mode eq 'regist'){
&Cart::Regist(\%FORM,$DUMMY_ref,\@opvalue,\@opnamearray);
}
elsif($mode eq 'regist2'){
&Cart::Regist2(\%FORM,$DUMMY_ref);
}
elsif($mode eq 'view'){
&Cart::View(\%FORM,$DUMMY_ref);
}
elsif($mode eq 'modify'){
&Cart::Modify(\%FORM,$DUMMY_ref);
}
elsif($mode eq 'login'){
if($CF::ninsho){
if(&Cart::NCheck(\%FORM,$DUMMY_ref)){
$FORM{'action'}='login';
&Cart::Enter("",\%FORM,'ok');
}
else{
&Cart::Login(\%FORM);
}
}
else{
&Cart::Login(\%FORM);
}
}
elsif($mode eq 'enter'){
&Cart::Enter("",\%FORM);
}
elsif($mode eq 'check'){
&Cart::Check(\%FORM);
}
elsif($mode eq 'order'){
&Cart::Order(\%FORM,$DUMMY_ref);
}
elsif($mode eq 'thanks'){
&Cart::Thanks($FORM{'newpoint'},$FORM{'odrID'},$FORM{'goods_all_kessai'},$FORM{'total'},$FORM{'re'},$FORM{'msg'},'ssl',$FORM{'memerr'},$FORM{'email'},$FORM{'pay'},$FORM{'name1'},$FORM{'tel'});
}
elsif($mode eq 'top'){
&Cart::Top(\%FORM);
}
elsif($mode eq 'category'){
&Cart::Category("",\%FORM);
}
elsif($mode eq 'item'){
&Cart::Item(\%FORM);
}
elsif($mode eq 'back'){
&Cart::Back(\%FORM);
}
elsif($mode eq 'search'){
&Cart::Search(\%FORM);
}
else{
&error("modeがありません。");
}
}
elsif($lib eq 'search'){
if(!-e $searchpl){
&error("searchplがありません。");
}
require $searchpl;
&Search::Search(\%FORM);
}
elsif($lib eq 'member' || $lib eq 'smartmember' || $lib eq 'keitaimember'){
if(!-e $memberpl){
&error("memberplがありません。");
}
require $memberpl;
if($lib eq 'smartmember'){
if(!-e $smartmemberpl){
&error("smartmemberplがありません。");
}
require $smartmemberpl;
}
elsif($lib eq 'keitaimember'){
if(!-e $keitaimemberpl){
&error("keitaimemberplがありません。");
}
require $keitaimemberpl;
}
if($mode eq 'form'){
&Member::Form;
}
elsif($mode eq 'check'){
&Member::Check("",\%FORM);
}
elsif($mode eq 'regist'){
&Member::Regist(\%FORM);
}
elsif($mode eq 'edit'){
&Member::Form("edit",\%FORM);
}
elsif($mode eq 'editcheck'){
&Member::Check("edit",\%FORM);
}
elsif($mode eq 'editregist'){
&Member::EditRegist(\%FORM);
}
elsif($mode eq 'login'){
&Member::Main("","",\%FORM);
}
elsif($mode eq 'main'){
&Member::Main('re',"",\%FORM,$DUMMY_ref);
}
elsif($mode eq 'enter'){
&Member::Enter(\%FORM);
}
elsif($mode eq 'del'){
&Member::Del(\%FORM);
}
elsif($mode eq 'passforget'){
&Member::PassForget(\%FORM);
}
elsif($mode eq 'passsend'){
&Member::PassSend(\%FORM);
}
elsif($mode eq 'httpcookie'){
&Member::HttpCookie(\%FORM);
}
elsif($mode eq 'logoutthanks'){
&Member::Logout;
}
elsif($mode eq 'logout'){
if($CF::ssl){
&Member::ToLogoutHttps;
}
else{
&Member::Logout;
}
}
elsif($mode eq 'logoutcookie'){
&Member::LogoutCookie;
}
elsif($mode eq 'loginform'){
&Member::LoginForm;
}
else{
&Member::Form;
}
}
elsif($lib eq 'otoiawase' || $lib eq 'smartotoiawase' || $lib eq 'keitaiotoiawase'){
if(!-e $otoiawasepl){
&error("otoiawaseplがありません。");
}
require $otoiawasepl;
&Otoiawase::Ini;
if($mode eq 'form'){
&Otoiawase::Form("",\%FORM);
}
elsif($mode eq 'check'){
&Otoiawase::Check(\%FORM);
}
elsif($mode eq 'send'){
&Otoiawase::Send(\%FORM);
}
else{
&error("modeがありません。");
}
}
elsif($lib eq 'postal'){
if(!-e $postalpl){
&error("postalplがありません。");
}
require $postalpl;
&Postal::Search(\%FORM);
}
elsif($lib eq 'review' || $lib eq 'smartreview' || $lib eq 'keitaireview'){
if(!-e $reviewpl){
&error("reviewplがありません。");
}
require $reviewpl;
&Review::Ini;
if($mode eq 'form'){
&Review::Form("",\%FORM);
}
elsif($mode eq 'check'){
&Review::Check(\%FORM);
}
elsif($mode eq 'regist'){
&Review::Regist(\%FORM);
}
else{
&Review::ReviewTop(\%FORM);
}
}
elsif($lib eq 'collect'){
if(!-e $collectpl){
&error("collectplがありません。");
}
require $collectpl;
&Collect::Main(\%FORM);
}
else{
&error("libがありません。");
}
sub error{
my($err,$act,$msg,$skinline,$tmp,$FO_ref);
if($Func::lockflag == 1){
&Func::unlock;
}
$err=$_[0];
$act=$_[1];
$FO_ref=$_[2];
if($lib eq "smart" || $lib eq "smartmember"){
$error='../skin_cgi/smart_error.html';
}
elsif($lib eq "keitai" || $lib eq "keitaimember"){
$error='../skin_cgi/keitai_error.html';
}
unless(open(HTML, $error)){
&dmyerror("$_[0]$errorが開けません。ファイル名を確認してください。");
}
$skinline = join('',);
close(HTML);
if($act eq "login"){
$skinline=~s/#pref/${$FO_ref}{'pref'}/g;
$skinline=~s/#sessid/${$FO_ref}{'sessid'}/g;
$err="".$err."";
}
$skinline=~s//$err/;
if($act eq "modify"){
$msg=qq(
カート画面で変更);
}
elsif($act eq "back"){
$msg=qq(
商品画面に戻る);
}
elsif($act eq "mobilemodify"){
$msg=qq(
カート画面で変更);
}
elsif($act eq "mobileback"){
$msg=qq(
戻る);
}
if($msg){
$skinline=~s//$msg/;
}
print "Content-type: text/html\n\n";
print $skinline;
exit;
}
sub dmyerror{
print "Content-type: text/html\n\n";
print "