⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 nsadmin.cgi

📁 支持全流程的Perl+MySQL电子商务系统。完全公开代码。
💻 CGI
📖 第 1 页 / 共 2 页
字号:
#!/usr/bin/perl
#
#
##########################################################
#					网络小厨房 商店系统
#					Net Kitchen SHOP
##########################################################
#首页代码
##########################################################

####################################################################################
#前端预处理
####################################################################################
use FindBin qw($Bin);
use lib "$Bin/library";
use iLcatlib;
use strict;
use vars qw(%FORM %CON %COOKIE $LIB $sth $row @userdata);

#获得系统参数
tie %CON, 'IniFiles', ( -file => "$Bin/nkshop.ini" );

#构造新对象
$LIB=iLcatlib->new(ttmlpath=>"$CON{path}{ttmlpath}");

#获得COOKIE
%COOKIE=$LIB->ReadCookie();

#获得提交内容
%FORM=$LIB->ReadParse();

#连接数据库
$LIB->MySQL_Connect(
	database=>"$CON{database}{database}",
	dbhost=>"$CON{database}{dbhost}",
	dbuser=>"$CON{database}{dbuser}",
	dbpwd=>"$CON{database}{dbpwd}"
);

#SESSION PROCESS

@userdata=$LIB->key_proc("$COOKIE{'key'}","$CON{parameter}{timeout}");

if ($FORM{'act'} eq "create_login") {&create_login;}		#建立登陆数据
elsif ($FORM{'act'} eq "logout") {&delete_login;}		#删除登陆数据
elsif ($FORM{'act'} eq "main") {&check_user;&main;}						#第一页
elsif ($FORM{'act'} eq "admin_left") {&check_user;&admin_left;}			#第一页框架LEFT
elsif ($FORM{'act'} eq "admin_main") {&check_user;&admin_main;}			#第一页框架MAIN

elsif ($FORM{'act'} eq "pg_cate") {&check_user;&pg_cate;}				#分类管理页
elsif ($FORM{'act'} eq "mv_cate") {&check_user;&mv_cate;}				#分类移除页
elsif ($FORM{'act'} eq "ad_cate") {&check_user;&ad_cate;}				#分类增加页
elsif ($FORM{'act'} eq "rn_cate") {&check_user;&rn_cate;}				#分类更名页
elsif ($FORM{'act'} eq "rn_cate_do") {&check_user;&rn_cate_do;}			#分类更名工作页

elsif ($FORM{'act'} eq "pg_life") {&check_user;&pg_life;}				#分类管理页
elsif ($FORM{'act'} eq "mv_life") {&check_user;&mv_life;}				#分类移除页
elsif ($FORM{'act'} eq "ad_life") {&check_user;&ad_life;}				#分类增加页
elsif ($FORM{'act'} eq "rn_life") {&check_user;&rn_life;}				#分类更名页
elsif ($FORM{'act'} eq "rn_life_do") {&check_user;&rn_life_do;}			#分类更名工作页

elsif ($FORM{'act'} eq "pg_pro") {&check_user;&pg_pro;}				#商品管理页
elsif ($FORM{'act'} eq "ad_pro") {&check_user;&ad_pro;}				#商品增加页
elsif ($FORM{'act'} eq "up_pro") {&check_user;&up_pro;}				#商品更新页
elsif ($FORM{'act'} eq "up_pro_do") {&check_user;&up_pro_do;}		#商品更新工作页
elsif ($FORM{'act'} eq "se_pro") {&check_user;&se_pro;}				#商品搜索工作页
elsif ($FORM{'act'} eq "mv_pro") {&check_user;&mv_pro;}				#商品移除工作页
elsif ($FORM{'act'} eq "ed_pro") {&check_user;&ed_pro;}				#商品编辑页
elsif ($FORM{'act'} eq "ed_pro_do") {&check_user;&ed_pro_do;}				#商品编辑工作页

elsif ($FORM{'act'} eq "pg_account") {&check_user;&pg_account;}				#帐务单页
elsif ($FORM{'act'} eq "do_account") {&check_user;&do_account;}				#帐务工作页

elsif ($FORM{'act'} eq "pg_goods") {&check_user;&pg_goods;}				#物流单页
elsif ($FORM{'act'} eq "do_goods") {&check_user;&do_goods;}				#物流工作页

else {&login;}												#无任何请求登陆


sub login
{
print "Content-type: text/html\n\n";
print qq~
<form method="POST" action="nsadmin.cgi">
  <p>ID<input type="text" name="uid" size="20"></p>
  <p>PWD<input type="password" name="pwd" size="20"><input type="submit" value="提交" name="B1"></p>
  <input type="hidden" name="act" value="create_login">
</form>~;
exit;
}


########检测用户
sub check_user
{
	if ($userdata[0] eq "游客") {
		$LIB->CookieClear('key');
		$LIB->Error("用户超时,请重新登陆");
	}
	elsif ($userdata[1] ne "0") {
		$LIB->CookieClear('key');
		$LIB->Error("用户权限不够");
	}

return();
}

sub create_login
{
my ($session_key);
###########################
#建立用户的SESSION KEY
####检测用户
if ($COOKIE{'key'} eq "") {#如果是未登陆用户
	$sth=$LIB->MySQL_Query("select id,passwd,level from userdata where id = '$FORM{'uid'}'");
	$row = $sth->fetchrow_arrayref();
	$FORM{'pwd'}=$LIB->crypt("$FORM{'pwd'}");
	if ($FORM{'pwd'} ne $row->[1]) {$LIB->Error("用户密码错误");}
	elsif ($row->[2] ne 0) {$LIB->Error("用户权限不够,必须是最高级用户");}

	#######################
	#建立用户登陆数据
	my $lgt	=	time();
	my $ukey	=	$LIB->RandKey();

	$LIB->MySQL_Do("UPDATE userdata set lgt='$lgt',ukey='$ukey' where id = '$FORM{'uid'}'");

	$session_key = &iLcatlib::cookie(-name=>'key',
				 -value=>"$ukey",
				 -expires=>"+$CON{parameter}{timeout}s");

	print "Set-Cookie: $session_key\n";

}
else {#如果是已经登陆用户权限不够就显示错误
	if ($userdata[1] != 0) {$LIB->Error("用户权限不够");}
}

$LIB->Location("$CON{path}{cgiurl}/nsadmin.cgi?act=main");

exit
}

########检测用户
sub delete_login
{
	$LIB->MySQL_Do("UPDATE userdata set lgt='',ukey='' where id = '$userdata[0]'") if ($userdata[1] == 0);
	$LIB->CookieClear('key');
	$LIB->Location("$CON{path}{cgiurl}/nsadmin.cgi");

exit;
}

##################################################################
#					MAIN PAGE部分
##################################################################

sub main
{
my ($text,@view);

$text={
	cgiurl	=>	$CON{path}{cgiurl},
};

@view=$LIB->Parse("admin.htm",$text);

print @view;

#MySQL Disconnect
$LIB->MySQL_Disconnect();
#The END
$LIB->exit();
}

sub admin_left
{
my ($text,@view);

$text={
	cgiurl	=>	$CON{path}{cgiurl},
	imgurl	=>	$CON{path}{webimg},
};

@view=$LIB->Parse("admin_left.htm",$text);

print @view;

#MySQL Disconnect
$LIB->MySQL_Disconnect();
#The END
$LIB->exit();
}

sub admin_main
{
my ($text,@view);

@view=$LIB->Parse("admin_main.htm");

print @view;

#MySQL Disconnect
$LIB->MySQL_Disconnect();
#The END
$LIB->exit();
}


##################################################################
#					产品管理部分
##################################################################

#-----------------------------
#		分类页
#-----------------------------
sub pg_cate
{
my ($text,@view,%dbs);

##########
#总量
$sth=$LIB->MySQL_Query("select count(cate_num) from pro_cate where cate_type='0'");
$row = $sth->fetchrow_arrayref();
my $count = $row->[0];

#获得分类
my $dm_catelist=0;
$sth=$LIB->MySQL_Query("select cate_num,cate_name,cate_level,cate_cretime from pro_cate where cate_type = '0'");
while (($row = $sth->fetchrow_arrayref)){

	$dbs{'catelist'}{"$dm_catelist"}={
			num		=>	$row->[0],
			name	=>	$row->[1],
			level	=>	$row->[2],
			cretime	=>	$row->[3],
	};
	$dm_catelist++;
}

$text = {
	cgiurl	=>	$CON{path}{cgiurl},
	imgurl	=>	$CON{path}{webimg},
	loop_catelist=>	$dm_catelist-1,
	count	=>	$count,
};

@view=$LIB->Parse("admin_pg_cate.htm",$text,%dbs);

print @view;

#MySQL Disconnect
$LIB->MySQL_Disconnect();
#The END
$LIB->exit();
}

#-----------------------------
#		分类增加页
#-----------------------------
sub ad_cate
{
#Filter Values
$FORM{'cate_name'}=$LIB->MySQL_Quote("$FORM{'cate_name'}");
$FORM{'cate_level'}=$LIB->MySQL_Quote("$FORM{'cate_level'}");

##########
#顺序号
$sth=$LIB->MySQL_Query("select cate_num from pro_cate order by cate_num desc limit 1");
$row = $sth->fetchrow_arrayref();
my $cate_num = $row->[0]+1;


#将新分类增加到数据库当中

$LIB->MySQL_Do("INSERT into pro_cate(cate_num,cate_name,cate_level,cate_type,cate_cretime)
				values('$cate_num',$FORM{'cate_name'},$FORM{'cate_level'},'0',sysdate())
				");

$LIB->Location("$CON{path}{cgiurl}/nsadmin.cgi?act=pg_cate");

#MySQL Disconnect
$LIB->MySQL_Disconnect();
#The END
$LIB->exit();
}

#-----------------------------
#		关系页
#-----------------------------
sub pg_life
{
my ($text,@view,%dbs);

##########
#总量
$sth=$LIB->MySQL_Query("select count(cate_num) from pro_cate where cate_type='1'");
$row = $sth->fetchrow_arrayref();
my $count = $row->[0];

#获得所有的关系
my $dm_lifelist=0;
$sth=$LIB->MySQL_Query("select cate_num,cate_name,cate_level,cate_cretime,cate_image from pro_cate where cate_type = '1'");
while (($row = $sth->fetchrow_arrayref)){

	$dbs{'lifelist'}{"$dm_lifelist"}={
			num		=>	$row->[0],
			name	=>	$row->[1],
			level	=>	$row->[2],
			cretime	=>	$row->[3],
			image	=>	"$row->[4]",
	};
	$dm_lifelist++;
}

$text = {
	cgiurl	=>	$CON{path}{cgiurl},
	imgurl	=>	$CON{path}{webimg},
	loop_lifelist=>	$dm_lifelist-1,
	count	=>	$count,
};

@view=$LIB->Parse("admin_pg_life.htm",$text,%dbs);

print @view;

#MySQL Disconnect
$LIB->MySQL_Disconnect();
#The END
$LIB->exit();
}


#-----------------------------
#		关系增加页
#-----------------------------
sub ad_life
{
my ($file,$fh,$extname,$buffer,$image);

#Filter Values
$FORM{'cate_name'}=$LIB->MySQL_Quote("$FORM{'cate_name'}");

#如果存在图片就UP图片到服务器上
if ($FORM{'cate_image'} ne "") {
	$file = &iLcatlib::param("cate_image");
	$fh	 = &iLcatlib::upload("cate_image");

	($extname,$buffer);

	$file =~ s/^.*(\\|\/)//;
	if ($file =~ /\.([\W\w\d]+)$/) {
		$extname = $1;
	}

	if (-e "$CON{path}{proimgpath}/$file") {
			close ($fh);
			$LIB->Error("$CON{path}{proimgpath}/$file 这个文件名已经存在");
	}

	unless (open (OUTFILE,">$CON{path}{proimgpath}/$file")) {
			close ($fh);
			$LIB->Error("$CON{path}{proimgpath}/$file 不能写文件");
	}

	binmode $fh;
	binmode OUTFILE;
		while (read($fh, $buffer, 1024)) {
			print OUTFILE $buffer;
		}
		close (OUTFILE);
	close ($fh);

	$image="$CON{path}{proimg}/$file";
}
else{
	$image="$CON{path}{proimg}/$CON{path}{lifemain}";
}

##########
#顺序号
$sth=$LIB->MySQL_Query("select cate_num from pro_cate order by cate_num desc limit 1");
$row = $sth->fetchrow_arrayref();
my $cate_num = $row->[0]+1;


#将新关系增加到数据库当中

$LIB->MySQL_Do("INSERT into pro_cate(cate_num,cate_name,cate_image,cate_type,cate_cretime)
				values('$cate_num',$FORM{'cate_name'},'$image','1',sysdate())
				");

$LIB->Location("$CON{path}{cgiurl}/nsadmin.cgi?act=pg_life");

#MySQL Disconnect
$LIB->MySQL_Disconnect();
#The END
$LIB->exit();
}

#-----------------------------
#		产品页
#-----------------------------
sub pg_pro
{
my ($text,@view,%dbs,$row2,$row3,$sth2);

##########
#总量
$sth=$LIB->MySQL_Query("select count(cate_num) from pro_cate where cate_type='0'");
$row = $sth->fetchrow_arrayref();
my $count = $row->[0];

#获得数据
my $dm_prolist=0;
$sth=$LIB->MySQL_Query("select num,name,image,photo,price,amount,choosed,sellout,inherit_cate,life_foot,cretime,pid from store order by cretime desc");
while (($row = $sth->fetchrow_arrayref)){

##########
#总量
$sth2=$LIB->MySQL_Query("select cate_name from pro_cate where cate_num = '$row->[8]'");
$row2 = $sth2->fetchrow_arrayref();

##########
#总量
$sth2=$LIB->MySQL_Query("select cate_name from pro_cate where cate_num = '$row->[9]'");
$row3 = $sth2->fetchrow_arrayref();

	$dbs{'prolist'}{"$dm_prolist"}={
			num		=>	$row->[0],
			name	=>	$row->[1],
			image	=>	$row->[2],
			photo	=>	$row->[3],
			price	=>	$row->[4],
			amount	=>	$row->[5],
			choosed	=>	$row->[6],
			sellout	=>	$row->[7],
			cate_name	=>	$row2->[0],
			life_name	=>	$row3->[0],
			cretime	=>	$row->[10],
			pid		=>	$row->[11],
			cgiurl	=>	$CON{path}{cgiurl},
	};
	$dm_prolist++;
}

#获得生存关系
my $dm_lifefoot=0;
$sth=$LIB->MySQL_Query("select cate_num,cate_name from pro_cate where cate_type = '1' order by cate_num desc");
while (($row = $sth->fetchrow_arrayref)){

	$dbs{'lifefoot'}{"$dm_lifefoot"}={
			cate_num	=>	$row->[0],
			cate_name	=>	$row->[1],
	};
	$dm_lifefoot++;
}

#获得生存关系
my $dm_inherit_cate=0;
$sth=$LIB->MySQL_Query("select cate_num,cate_name from pro_cate where cate_type = '0' order by cate_num desc");
while (($row = $sth->fetchrow_arrayref)){

	$dbs{'inherit_cate'}{"$dm_inherit_cate"}={
			cate_num	=>	$row->[0],
			cate_name	=>	$row->[1],
	};
	$dm_inherit_cate++;
}

$text = {
	cgiurl	=>	$CON{path}{cgiurl},
	imgurl	=>	$CON{path}{webimg},
	loop_prolist=>	$dm_prolist-1,
	loop_lifefoot=>	$dm_lifefoot-1,
	loop_inherit_cate=>	$dm_inherit_cate-1,
	count	=>	$count,
};

@view=$LIB->Parse("admin_pg_pro.htm",$text,%dbs);

print @view;

#MySQL Disconnect
$LIB->MySQL_Disconnect();
#The END
$LIB->exit();
}

sub ad_pro
{
#########声明!
my ($image_file,$image_fh,$image_extname,$buffer,$photo_file,$photo_fh,$photo_extname);

#########CheckINPUT
if ($FORM{'name'} eq "") {$LIB->Error("请填写产品名称");}
elsif ($FORM{'pid'} eq "") {$LIB->Error("请填写货号");}
elsif ($FORM{'price'} eq "") {$LIB->Error("请填写产品单价");}
elsif ($FORM{'amount'} eq "") {$LIB->Error("请填写产品数量");}
elsif ($FORM{'des'} eq "") {$LIB->Error("请填写产品介绍");}
elsif ($FORM{'image'} eq "") {$LIB->Error("请上载小图片");}
elsif ($FORM{'photo'} eq "") {$LIB->Error("请上载大图片");}

#Filter Values
$FORM{'name'}		=	$LIB->MySQL_Quote("$FORM{'name'}");
$FORM{'pid'}		=	$LIB->MySQL_Quote("$FORM{'pid'}");
$FORM{'spec_desc'}	=	$LIB->MySQL_Quote("$FORM{'spec_desc'}");
$FORM{'spec'}		=	$LIB->MySQL_Quote("$FORM{'spec'}");
$FORM{'price'}		=	$LIB->MySQL_Quote("$FORM{'price'}");
$FORM{'amount'}		=	$LIB->MySQL_Quote("$FORM{'amount'}");
$FORM{'life_foot'}	=	$LIB->MySQL_Quote("$FORM{'life_foot'}");
$FORM{'statmsg'}	=	$LIB->MySQL_Quote("$FORM{'statmsg'}");
$FORM{'inherit_cate'}=	$LIB->MySQL_Quote("$FORM{'inherit_cate'}");
$FORM{'des'}		=	$LIB->MySQL_Quote("$FORM{'des'}");

##########

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -