Skip to content

Commit e389e49

Browse files
committed
add some function
1 parent 27b7205 commit e389e49

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

44 files changed

+937
-23
lines changed

shop/.DS_Store

0 Bytes
Binary file not shown.

shop/app/config/app.config.php

+2-1
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,8 @@
66
'user' => 'root',
77
'pass'=>'root',
88
'charset' => 'utf8',
9-
'dbname' =>'demo_shop'
9+
'dbname' =>'demo_shop',
10+
'prefix' => 'demo_'
1011
),
1112
'app'=> array(),
1213
'bakc'=>array(),

shop/app/controller/back/AdminController.class.php

+16-1
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
<?php
22
class AdminController extends BackPlatformController{
33

4+
45
/**
56
* 展示登陆页面
67
* @return [type] [description]
@@ -10,10 +11,18 @@ public function indexAction(){
1011
}
1112

1213
public function signinAction(){
14+
$captcha_tool = new CaptchaTool;
15+
if (!$captcha_tool -> checkCaptcha($_POST['captcha'])) {
16+
$this->jump('index.php?p=back&c=Admin&a=index','验证码错误',2);
17+
}
1318
//调用模型完成数据库操作
1419
//利用用户名 和 密码 验证用户身份
1520
$model_admin = new AdminModel;
16-
if ($model_admin->checkByLogin($_POST['username'],$_POST['password'])) {
21+
if ($admin_info = $model_admin->checkByLogin($_POST['username'],$_POST['password'])) {
22+
if (isset($_POST['remember']) && $_POST['remember'] == '1') {
23+
setcookie('admin_id',$admin_info['admin_id'],PHP_INT_MAX);
24+
setcookie('admin_pass',md5('demo'.$admin_info['pass'].'shop'),PHP_INT_MAX);
25+
}
1726
//setcookie('is_login','yes');
1827
//session_start();
1928
$_SESSION['is_login'] = 'yes';
@@ -26,4 +35,10 @@ public function signinAction(){
2635
}
2736
}
2837

38+
39+
public function captchaAction(){
40+
$tool_captcha = new CaptchaTool;
41+
$tool_captcha -> generate();
42+
}
43+
2944
}

shop/app/controller/back/BackPlatformController.class.php

+8-2
Original file line numberDiff line numberDiff line change
@@ -23,14 +23,20 @@ protected function initSeesion(){
2323
protected function checkLogin(){
2424
// 判断用户是否登陆
2525
@session_start();
26-
if (CONTROLLER == 'Admin' && (ACTION == 'index' || ACTION=='signin')) {
26+
if (CONTROLLER == 'Admin' && (ACTION == 'index' || ACTION=='signin' || ACTION=='captcha')) {
2727
//不需要验证
2828
}else{
2929
//需要
3030
if(isset($_SESSION['is_login']) && $_SESSION['is_login'] == 'yes'){
3131
//继续执行
3232
}else{
33-
$this->jump('index.php?p=back&c=Admin&a=index','请登录',2);
33+
$model_admin = new AdminModel;
34+
if ($model_admin -> checkByCookie()) {
35+
$_SESSION['is_login'] = 'yes';
36+
}else{
37+
$this->jump('index.php?p=back&c=Admin&a=index','请登录',2);
38+
}
39+
3440
}
3541
}
3642
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,41 @@
1+
<?php
2+
class GoodsController extends BackPlatformController{
3+
/**
4+
* 增加商品跳转动作
5+
*/
6+
public function addAction(){
7+
//得到所有分类
8+
$model_category = new CategoryModel;
9+
$cat_list = $model_category -> getList();
10+
require CURR_VIEW_DIR.'goodsAdd.html';
11+
}
12+
13+
/**
14+
* 增加商品
15+
*/
16+
public function insertAction(){
17+
//获取添加的商品信息
18+
$data['goods_name'] = $_POST['goods_name'];
19+
$data['goods_sn'] = $_POST['goods_sn'];
20+
$data['cat_id'] = $_POST['cat_id'];
21+
$data['shop_price'] = $_POST['shop_price'];
22+
$data['market_price'] = $_POST['market_price'];
23+
$data['goods_desc'] = $_POST['goods_desc'];
24+
$data['goods_number'] = $_POST['goods_number'];
25+
//商品状态
26+
$is_best = isset($_POST['is_best'])?$_POST['is_best']:0;
27+
$is_new = isset($_POST['is_new'])?$_POST['is_new']:0;
28+
$is_hot = isset($_POST['is_hot'])?$_POST['is_hot']:0;
29+
$data['goods_status'] = 0|$is_best|$is_new|$is_hot;
30+
$data['is_on_sale'] = isset($_POST['is_on_sale'])?$_POST['is_on_sale']:'0';
31+
$data['add_time'] = time();
32+
33+
34+
$model_goods = new GoodsModel;
35+
if ($model_goods -> insertGoods($data)) {
36+
$this->jump('index.php?p=back&c=Goods&a=list');
37+
}else{
38+
$this->jump('index.php?p=back&c=Goods&a=add','失败原因');
39+
}
40+
}
41+
}

shop/app/model/AdminModel.class.php

+15-2
Original file line numberDiff line numberDiff line change
@@ -4,16 +4,29 @@
44
* demo_admin表模型
55
*/
66
class AdminModel extends Model{
7+
8+
protected $table_name = 'admin';
79
/**
810
* 利用登陆用户名 密码 进行登录验证
911
* @param [type] $admin_name 用户名
1012
* @param [type] $admin_pass 用户密码
1113
* @return [type] [description]
1214
*/
1315
public function checkByLogin($admin_name,$admin_pass){
14-
$sql = "select * from demo_admin where admin_name='$admin_name' and admin_pass=md5('$admin_pass')";
16+
$sql = "select * from {$this->table()} where admin_name='$admin_name' and admin_pass=md5('$admin_pass')";
1517
$row = $this->db->fetchRow($sql);
1618
//var_dump($row);
17-
return (bool)$row;
19+
return $row;
20+
}
21+
22+
23+
public function checkByCookie(){
24+
if (!isset($_COOKIE['admin']) || !isset($_COOKIE['admin_pass'])) {
25+
return false;
26+
}
27+
28+
29+
$sql = "select * from {$this->table()} where admin_id='{$_COOKIE['admin_id']}' and md5(concat('demo',admin_pass,'php')) = '{$_COOKIE['admin_pass']}'";
30+
return $this->db->fetchRow($sql);
1831
}
1932
}

shop/app/model/CategoryModel.class.php

+17-12
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,13 @@
11
<?php
22
class CategoryModel extends Model{
3+
4+
protected $table_name = 'category';
35
/**
46
* 获取所有分类信息
57
* @return 所有分类
68
*/
79
public function getList($p_id=0){
8-
$sql = "select * from `demo_category` order by sort_order";
10+
$sql = "select * from {$this->table()} order by sort_order";
911
$list = $this->db->fetchAll($sql);
1012
//return $list;
1113
$list = $this->getTree($list,$p_id,0);
@@ -36,20 +38,21 @@ public function getTree($arr,$pid=0,$deep=0){
3638
* @return bool
3739
*/
3840
public function delById($id){
39-
if ($this->isLeaf($id) ){
41+
if (!$this->isLeaf($id) ){
4042
$this->error_info = '分类不是末级分类';
4143
return false;
4244
}
43-
$sql = "delete from demo_category where `cat_id`=$id";
44-
return $this->db->query($sql);
45+
//$sql = "delete from {$this->table()}} where `cat_id`=$id";
46+
//return $this->db->query($sql);
47+
return $this->auotoDelete($id);
4548
}
4649

4750
/**
4851
* 判断当前分类下是否有子节点
4952
* @return boolean [description]
5053
*/
5154
public function isLeaf($cat_id){
52-
$sql = "select count(*) from demo_category where parent_id=$cat_id";
55+
$sql = "select count(*) from {$this->table()} where parent_id=$cat_id";
5356
$child_count = $this->db->fetchColoum($sql);
5457
return $child_count == 0;
5558
}
@@ -64,20 +67,21 @@ public function addCate($data){
6467
// return false;
6568
}
6669

67-
$sql = "SELECT count(*) from demo_category where parent_id={$data['parent_id']} and cat_name='{$data['cat_name']}' ";
70+
$sql = "SELECT count(*) from {$this->table()} where parent_id={$data['parent_id']} and cat_name='{$data['cat_name']}' ";
6871

6972
$cat_count = $this->db->fetchColoum($sql);
7073
if ($cat_count > 0) {
7174
$this->error_info = '分类已经存在';
7275
}
7376

74-
$sql = "INSERT INTO `demo_category`(`cat_name`, `sort_order`, `parent_id`) VALUES ('{$data['cat_name']}','{$data['sort_order']}','{$data['parent_id']}')";
75-
return $this->db->query($sql);
77+
// $sql = "INSERT INTO `{$this->table()}`(`cat_name`, `sort_order`, `parent_id`) VALUES ('{$data['cat_name']}','{$data['sort_order']}','{$data['parent_id']}')";
78+
// return $this->db->query($sql);
79+
return $this->autoInsert($data);
7680
}
7781

7882
public function getById($cat_id){
79-
$sql = "select * from demo_category where cat_id='{$cat_id}'";
80-
return $this->db->fetchRow($sql);
83+
//$sql = "select * from {$this->table()} where cat_id='{$cat_id}'";
84+
return $this->autoSelectRow($cat_id);
8185
}
8286

8387
public function updateCat($data){
@@ -95,8 +99,9 @@ public function updateCat($data){
9599

96100
//echo $data['cat_id'];die();
97101

98-
$sql = "update demo_category set cat_name='{$data['cat_name']}',sort_order={$data['sort_order']},parent_id={$data['parent_id']} where cat_id={$data['cat_id']}";
99-
return $this->db->query($sql);
102+
//$sql = "update {$this->table()} set cat_name='{$data['cat_name']}',sort_order={$data['sort_order']},parent_id={$data['parent_id']} where cat_id={$data['cat_id']}";
103+
//return $this->db->query($sql);
104+
return $this->autoUpdate($data);
100105
}
101106

102107
}

shop/app/model/GoodsModel.class.php

+8
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
<?php
2+
class GoodsModel extends Model{
3+
protected $table_name = 'goods';
4+
5+
public function insertGoods($data){
6+
7+
return $this->autoInsert($data); }
8+
}

shop/app/view/back/goodsAdd.html

+150
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,150 @@
1+
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
2+
<html xmlns="http://www.w3.org/1999/xhtml">
3+
<head>
4+
<title>ECSHOP 管理中心 - 添加新商品 </title>
5+
<meta name="robots" content="noindex, nofollow">
6+
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
7+
<link href="./app/view/back/styles/general.css" rel="stylesheet" type="text/css" />
8+
<link href="./app/view/back/styles/main.css" rel="stylesheet" type="text/css" />
9+
</head>
10+
<body>
11+
12+
<h1>
13+
<span class="action-span"><a href="goods.php?act=list">商品列表</a></span>
14+
<span class="action-span1"><a href="index.php?act=main">ECSHOP 管理中心</a> </span><span id="search_id" class="action-span1"> - 添加新商品 </span>
15+
<div style="clear:both"></div>
16+
</h1>
17+
<!-- start goods form -->
18+
<div class="tab-div">
19+
<!-- tab bar -->
20+
<div id="tabbar-div">
21+
<p>
22+
<span class="tab-front" id="general-tab">通用信息</span>
23+
<span class="tab-back" id="detail-tab">详细描述</span>
24+
<span class="tab-back" id="mix-tab">其他信息</span>
25+
<span class="tab-back" id="gallery-tab">商品相册</span>
26+
</p>
27+
</div>
28+
29+
<!-- tab body -->
30+
<div id="tabbody-div">
31+
<form action="index.php?p=back&c=Goods&a=insert" method="post" enctype="multipart/form-data">
32+
<table width="90%" id="general-table" align="center">
33+
<tr>
34+
<td class="label">商品名称:</td>
35+
<td><input type="text" name="goods_name" value="" style="float:left;color:;" size="30" />
36+
<span class="require-field">*</span>
37+
</td>
38+
</tr>
39+
<tr>
40+
<td class="label">
41+
商品货号</td>
42+
<td>
43+
<input type="text" name="goods_sn" value="" size="20"/>
44+
<span class="require-field">*</span>
45+
<span class="notice-span" style="display:block" id="noticeGoodsSN">如果您不输入商品货号,系统将自动生成一个唯一的货号。</span></td>
46+
</tr>
47+
<tr>
48+
<td class="label">商品分类:</td>
49+
<td>
50+
<select name="cat_id">
51+
<option value="0">请选择...</option>
52+
<?php foreach ($cat_list as $row):?>
53+
<option value="<?php echo $row['cat_id'];?>">
54+
<?php echo str_repeat('&nbsp;', $row['deep']), $row['cat_name'];?>
55+
</option>
56+
<?php endForeach;?>
57+
</select>
58+
<span class="require-field">*</span>
59+
</td>
60+
</tr>
61+
62+
<tr>
63+
<td class="label">本店售价:</td>
64+
<td>
65+
<input type="text" name="shop_price" value="0" size="20" />
66+
<span class="require-field">*</span></td>
67+
</tr>
68+
69+
<tr>
70+
<td class="label">市场售价:</td>
71+
<td><input type="text" name="market_price" value="0" size="20" />
72+
</td>
73+
</tr>
74+
75+
<tr>
76+
<td class="label">上传商品图片:</td>
77+
<td>
78+
<input type="file" name="image_ori" />
79+
</td>
80+
</tr>
81+
</table>
82+
83+
<!-- 详细信息 -->
84+
<table width="90%" id="detail-table" style="display:none">
85+
<tr>
86+
<td>
87+
<textarea name="goods_desc"></textarea>
88+
</td>
89+
</tr>
90+
</table>
91+
92+
<!-- 其他信息 -->
93+
<table width="90%" id="mix-table" style="display:none" align="center">
94+
95+
<tr>
96+
<td class="label">商品库存数量:</td>
97+
<td><input type="text" name="goods_number" value="1" size="20" /></td>
98+
</tr>
99+
100+
<tr>
101+
<td class="label">加入推荐:</td>
102+
<td>
103+
<input type="checkbox" name="is_best" value="1" />精品
104+
<input type="checkbox" name="is_new" value="2" />新品
105+
<input type="checkbox" name="is_hot" value="4" />热销
106+
</td>
107+
</tr>
108+
<tr id="alone_sale_1">
109+
<td class="label" id="alone_sale_2">上架:</td>
110+
<td id="alone_sale_3">
111+
<input type="checkbox" name="is_on_sale" value="1" checked="checked" />
112+
</td>
113+
</tr>
114+
</table>
115+
116+
<!-- 商品相册 -->
117+
<table width="90%" id="gallery-table" style="display:none" align="center">
118+
<tr>
119+
<td></td>
120+
</tr>
121+
<tr><td>&nbsp;</td></tr>
122+
<tr>
123+
<td>
124+
<a href="javascript:;" onclick="addImg(this)">[+]</a>
125+
图片描述 <input type="text" name="img_desc[]" size="20" />
126+
上传文件 <input type="file" name="img_url[]" />
127+
</td>
128+
</tr>
129+
</table>
130+
131+
<!-- 切换所需要的js效果 -->
132+
<!-- ecshp 核心的工具js对象 -->
133+
<script type="text/javascript" src="app/view/back/js/utils.js"></script>
134+
<!-- 切换选项卡 -->
135+
<script type="text/javascript" src="app/view/back/js/tab.js"></script>
136+
137+
<div class="button-div">
138+
<input type="submit" value=" 确定 " class="button" />
139+
<input type="reset" value=" 重置 " class="button" />
140+
</div>
141+
</form>
142+
</div>
143+
</div>
144+
145+
<div id="footer">
146+
&copy;<a href="banzhuand.me">banzhuande.me</a>
147+
</div>
148+
149+
</body>
150+
</html>

0 commit comments

Comments
 (0)