商城5

商品编辑

  1. GoodsController.class.php控制器文件增加一个edt方法

 

 

 

  1. 增加一个edt.html视图页面

 

 

效果

 

 

 

  1. GoodsModel.class.php模型文件增加一个_before_update更新的前置钩子函数

 

 

注意:这里将上传操作封装为一个方法

 

 

 

bug修复

注意:在上面使用更新的前置钩子函数后,由于商品伪删除里面的setField()方法底层调用的是模型的save()方法,但是save()方法又会触发自己模型的前置更新钩子函数,所以我们需要使用M()进行实例化系统模型,而不是实例化自己的商品模型文件。

 

 

同时,商品回收站的还原,也需要使用M函数进行实例化操作。

 

 

 

 

商品展示-分页-搜索-排序

  1. GoodsController.class.php控制器文件增加一个alst方法

 

 

 

  1. GoodsModel.class.php模型文件增加一个search方法,进行分页-排序-搜索操作

 

 

 

 

  1. 增加一个alst.html页面

搜索表单

 

 

数据和分页

 

 

效果

 

 

 

bug修复-方式一

出问题的原因就是p参数出问题。(p身上下手

 

 

 

bug修复-方式二

如果我们是在商品的其他的页面进行搜索的时候,有可能无法展示待搜索记录(记录本身是存在)。

出现问题的原因是:在其他页面(p=5)进行搜索的时候,错误把当前的页面传过去(第一次搜索应就是p=1

 

 

解决:

 

 

效果:

 

 

为什么可以?

答:__SELF__这个常量(TP里面存在)代表是当前的URL地址(包含GET参数)

index.php?m=Home&c=User&a=lst&gn=e8&p=12

 

__ACTION__(这个也是TP才有的)代表是当前的方法为止

index.php?m=Home&c=User&a=lst

 

注意:提交时候参数是照样过去

index.php?m=Home&c=User&a=lst&gn=12

 

优化

 

解决:编写一段js代码,完成自动表单提交

 

 

 

优化:(ajax无刷新搜索)+ ajax + 分页类(pagination

http://www.zhangxinxu.com/wordpress/2010/01/jquery-pagination-ajax%E5%88%86%E9%A1%B5%E6%8F%92%E4%BB%B6%E4%B8%AD%E6%96%87%E8%AF%A6%E8%A7%A3/

 

网站:http://www.barretlee.com/blog/archives/

 

 

datatable展示数据(掌握)

插件自己支持-分页-排序-搜索

  1. 在页面引入datatable相关文件

 

 

 

 

注意:这里的moment.js是一个时间处理插件

 

 

  1. 在页面定义函数进行数据

定义语言包

 

 

定义每页显示的数据和ajax提交的数据

 

 

定义返回数据和表格每列显示的对应格式

 

 

 

  1. GoodsController.class.php控制器增加一个ajaxGetData方法获取数据

 

 

 

 

  1. 效果

 

 

动态属性框生成

功能需求:

 

 

实现当用户添加某个商品的时候,选择的商品的类型不同的情况下,动态生成一个属性框。

 

 

 

实现思路:

  1. 肯定要为商品类型绑定一个change事件
  2. 当用户在商品类型做改变的时候,触发一个ajax请求(携带一个商品类型type_id
  3. 在后台接收请求,去sh_attribute属性表(根据type_id查询当前商品类型的所有的属性)
  4. 前台接收响应,然后处理数据(拼接 ul > li一个属性),最后DOM操作,放置页面上

 

额外:如果是单选属性,必须要增加 [+]

点击[+]这个之后,要动态的增加一行(需要注意,前面的符号要是[-]

点击[-]这个之后,要动态移除

 

复制一行使用jQueryclone方法(不光克隆当前行,克隆当前行的事件)

 

扩展

安全相关

  1. 什么是密钥?

答:加密的一个规则字符串

 

字频法(理论上统计样本足够大的下,常见的单词和字母以及字符出现概率是可以评估的)

 

  1. 密码学

答:最先出现密码的原型是有凯撒大帝。栅栏加密法

码表:

a(97) b c d

相当于(每个字母向后移动三位) (一个密钥,就是一个规则)(把每个字母对应的ascii码值+10===> ASCII码表)

d e d f

 

信息:明文(hi i am kaisa

信息:密文(as s d sad

 

如果由密钥将明文变成密文后,同时可以将密文变为明文(相互推导)对称加密(双向加密)

base64_encode();

baase64_decode();

 

TP里面:加密类(程序编写出来的加密都是很容易被破解)(量子计算机)

 

 

 

业内一个出名的加密函数(康盛公司里面戴志康 discuz!

 

 

 

web项目里面一般来说数据加密传输还是比较少(goodsData数据)但是有些敏感数据(支付 加密 https协议---> openssl加密库)

--with-openssl(加密肯定很好,数据安全,但是加密要消耗系统的资源,因为加密和解密是很消耗系统资源)

 

http://old.ruesin.com/php/php-encryption-decrypt-282.html

 

 

图灵(很厉害,二战德军加密机 恩格玛加密码)

 

常见的网站安全攻击

  1. I函数底层是使用 htmlspcialchars函数(只能处理 xss攻击)
  2. 还有csrf攻击(跨站脚本攻击, 伪提交数据)

 

 

防止:一般这种攻击都是在表单里面进行出现(伪造表单提交、外站提交)(在表单里面放置一个隐藏域input type='hidden' name='_token令牌' value = 'asdfasfafdasf788y12esadf'

 

原理:在服务器返回表单之前,需要生成一个随机字符串。然后将该字符串保存在session,同时往表单里面放置一个隐藏域。然后返回给浏览器,用户填写信息后,然后进行提交(隐藏域 _token )。 $_POST['_token'] == $_SESSION['_token']

http://netsecurity.51cto.com/art/201308/407554.htm

 

 

 

 

  1. sql注入(如果使用的pdo,应该是没有问题的)解决(addslashes函数进行转义)

TP里面实现(CI源码 laravel源码底层都是做了数据过滤处理)

 

 

到时候去公司之后,公司内部会写很多很多的过滤处理(使用五六个处理)互联网坏人更多(好玩)懂工具(渗透)http://yu.com

 

  1. 吓人(DOS攻击还好,不是特别厉害)变种(DDOS攻击,目前来说没有很好的防御机制,只能拿硬件抗)只是网络请求过多,服务器无法正常的响应。(web服务器集群: 并发10w ---> 控制(肉鸡)(个数:流量40G)--> 域名 )
  2. 服务器集群(80G
  3. 使用硬件防火墙

 

 

 

 

服务器:root

密码:admin88 admin 12344566789 试出来 奔溃(管理员邮箱:生日)备案:姓

生日 密码 (排列组合)

 

posted @ 2017-10-06 20:46  奋斗的黑蜗牛1号  阅读(211)  评论(0)    收藏  举报