从零开始之ecshop基础篇上(21)_项目管理_非技术区_程序员俱乐部

中国优秀的程序员网站程序员频道CXYCLUB技术地图
热搜:
更多>>
 
您所在的位置: 程序员俱乐部 > 非技术区 > 项目管理 > 从零开始之ecshop基础篇上(21)

从零开始之ecshop基础篇上(21)

 2013/12/17 2:09:14  cnblogs`  博客园  我要评论(0)
  • 摘要:项目中增加验证码的管理生成验证码和验证两个功能增加管理验证码操作的工具类Framework/tool/CaptchaTool.class.php生成验证码的功能增加:干扰像素imagesetpixel(画布,位置X,位置Y,颜色)//像素点干扰线条imageline(画布,起点X,起点Y,终点X,终点Y,颜色)//线条验证功能增加一个captchaTool类对象方法后台登陆中使用展示增加一个管理员的控制器的动作
  • 标签:

项目中增加验证码的管理

生成验证码 和 验证 两个功能

增加管理验证码操作的工具类

Framework/tool/CaptchaTool.class.php

        

生成验证码的功能

增加:干扰像素    imagesetpixel(画布,位置X,位置Y,颜色)//像素点

    干扰线条    imageline(画布,起点X,起点Y,终点X,终点Y,颜色)//线条

验证功能

增加一个captchaTool类对象方法

    

后台登陆中使用

展示

增加一个管理员的控制器的动作,用于生成验证码

back/AdminController    captchaAction

    

注意:将该动作,视为不需要登陆后,就可以请求到的动作

back/PlatformController    checkLogin()

请求可以看到验证码:shop.235.com/index.php?p=back&c=Admin&a=captcha

                

增加到表单内    直接使用img标签的src属性,来请求改地址,则可以生成图片:

    view/back/login.html

    

                    

此时,session数据内出现了该码值

验证码值

提交后,先验证后再验证用户名和密码。

controller/back/AdminController    signinAction()

点击更换

img标签的src属性表示图片URL地址,URL地址变了,图片应当发生变化。

利用js,做到,点击图片,修改图片元素的src属性。

点击修改属性?利用onclick事件,修改this.src

修改成什么?还是原始地址,增加一个每次不同的参数(随机数,时间戳)

图片不能显示错误的解决

建议:直接请求生成图片的地址

  1. header('Content-Type');注释
  2. 在输出图片的程序时,除了图片内容,不能有任何的输出
    1. 典型的:php标签外的输出
    2. utf8编码的文本文件,存在称之为BOM的前面的标识,用于标识该文件是utf8文件,BOM标识,3个字节的不可见字符组成的。应该保存成utf8不带BOM标识的。

无限分类

指的是,分类之间存在级别关系,该关系无限向下延伸。该分类模型,无限分类。

典型的就是以树状图表示分类关系的模型。

树,一种描述数据的结构(数据结构),由N个节点与N-1条边组成,而且要求每一个节点都有一条边,用于指向与其关联的节点。

基本概念

阶段,

边,

父节点,

子节点,

根节点:没有父节点的节点。

叶子节点:没有子节点的节点。

先辈节点(祖先节点)

后代节点

同辈节点,具有相同父节点的节点。

此时,使用关系型数据表 结构,表示出来 树状分类模型。

关系:每条记录地位是相同的,但是,树,每条数据之间有明显的层级关系

使用关系,表示出来,节点信息,和边的信息即可。

在节点信息表中(分类表),每条节点信息内,增加一个指向其父节点(父分类)的字段信息。增加一个字段保存父分类的id即可。

增加模拟数据,完成树状列表

完成简单分类列表

分类列表

控制器,Controller

增加后台的分类管理控制器类模块    controller/back/CategoryController.class.php

增加展示列表的动作            listAction()

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18

 

<?php
/**
 * 分类控制器类模块
 */
class CategoryController extends PlatformController {

    /**
     * 列表动作
     */
    public function listAction() {
        //调用模型取得数据
        $model_category = new CategoryModel;
        $list = $model_category->getList();

        //调用视图展示数据
        require CURRENT_VIEW_PATH . 'cat_list.html';
    }
}

模型,Model

增加Category表的操作模型:model/CategoryModel

1
2
3
4
5
6
7
8

 

<?php

/**
 * 分类模型
 */
class CategoryModel extends Model {

}

增加getList()方法:

1
2
3
4
5
6
7
8
9
10
11
12
13

 

<?php

/**
 * 分类模型
 */
class CategoryModel extends Model {
    /**
     * 得到简单的数据的集合
     */
     public function getList() {
        return $this->db->fetchAll('select * from it_category where 1);
     }
}

视图,View

增加一个视图层模板文件,展示列表view/back/cat_list.html    显示标题信息部分

1
2
3
4

 

<h1>
<span class="action-span"><a href="index.php?p=back&c=Category&a=add">添加分类</a></span>
<span class="action-span"><a href="index.php?p=back&c=Admin&a=main">管理中心</a>
</h1>

列表标头:

1
2
3
4
5
6

 

<table width="100" cellspacing="1" cellpadding="2" id="list-table">
    <tr>
        <th>分类名称</th>
        <th>商品数量</th>
        <th>操作</th>
    </tr>

循环输出tr部分:

1
2
3
4
5
6
7
8
9
10
11
12

 

<?php foreach($list as $row) : ?>
<tr align="center" class="0" id="0_6">
    <td align="left" class="first-cell">
        <span><a href="#"><?php echo $row['cat_name'];?></a></span>
    </td>
    <td width="">0</td>
    <td width="" align="center">
        <a href="#">编辑</a>
        <a href="#">移除</a>
    </td>
</tr>
<?php endForeach; ?>

其他

修改左侧菜单,增加请求到list的动作:修改模板的href属性即可。

view/back/menu.html

1

 

<li class="menu-item"><a href="index.php?p=back&c=Category&a=list" target="main-frame">商品分类</a></li>

 

  • 相关文章
发表评论
用户名: 匿名