商城PHP笔记
搭建环境,运用框架,渲染模板,页面跳转
1、启动环境,mamp直接设置host,自动修改hosts文件
2、设置虚拟主机,tp框架引入,在shop下新建index.php文件,include tp框架,运行,shop下自动生成三个文件夹:common、home、runtime
3、shop/common/conf/config.php 设置home/public下的js、image、css路径
4、运行index看到内容,更改index.html路径
5、index.html点击登录,注册跳转不显示页面,路径没设置对,用常亮CONTROLLER等action module。U函数也可以
6、建立后台模块
7、建立很多文件夹,控制器,模板。更改路径等
8、点击后台品字形展示商品,修改href,target
数据库,layout布局,提交表单添加数据入库
1、goods表,varchar长度设置几就是限制几个汉字或者字母
2、连接数据库相应超级慢!!!!!原因是:数据库配置我写了hosts域名,应该写localhost,😆,/Library/WebServer/Documents
3、遇到跳转注册显示不出来的情况,原因是href和实际模板名称不对应
4、使用layout,解决多模板部分重复问题。a.在home的conf下,配置layout_on=>true, layout_name=>’layout’,b.layout模板中用{CONTENT}
5、可以单独使用另外的布局{NOLAYOUT} <layout name="Pub/layout2"/>在html模板文件上使用就行了
6、创建plugin文件夹,引入富文本ueditor,a.head引入三个文件,b.标签id设置,c.执行一个script函数。这个遇到一个问题,就是head引入的三个文件路径有问题。布局混乱,设置textarea宽高就好了
7、添加数据入库:a.新建model类,自动加载里设置添加和更新时间,b.控制器内实例化model,create收集表单数据,add入库。注意,a.model文件命名,如add会有重复调用问题,b.注意表单name属性命名要和数据库字段一致,c.success方法,好像只能用U函数跳转
8、xss攻击,收集表单可能会有脚本,当展示出来的时候可能会被执行,tp已经做了处理,但是ueditor不能过滤。这部分不是很明白
上传图片,制作缩略图,展示list列表,分页展示,修改数据库(普通文本,单图,相册多图)
1、添加模板中引入tab标签,根据命名技巧和js函数来操作对应的内容显示和隐藏
2、上传单张图片,model类,瞻前顾后,数组配置 => $up = new \Think\Upload($conf) =>$z = $up>uploadOne($_FILES['goods_logo']); => $data['goods_big_logo'] = $up->rootPath.$z['savepath'].$z['savename'];
疑惑:$up用箭头直接调用rootPath?
3、制作缩略图
$im = new \Think\Image();
$im->open($data['goods_big_logo']);
$im-> thumb(60, 60);
$small = $up->rootPath.$z['savepath'].'small_'.$z['savename'];
$im->save($small);
$data['goods_small_logo'] = $small;
open和save需要的参数都是路径字符串,缩略图初始化不需要参数,upload需要配置参数
4、js实现添加相册
5、建立相册表
6、瞻前顾后,选择顾后,因为那时候才能拿到goodsid
7、upload方法参数要穿数组!!!刚刚就犯了这个错误,savepath时间命名,savename随机名称
8、show列表展示,config文件宏定义'URL_WEBSITE' => 'http://www.czshop.com:8888/',这个当时搞了一天!!!!!!因为格式没对。现象是在浏览器上报错,查看代码,重复出现域名路径
9、用的封装好的工具类,原理现在看不懂,注意接口,输出不但可以输出数据数组,还可以输出标签字符串,很神奇
u函数,在控制器内U('show’),在模板里{:U('upd', array('goods_id'=>$v.goods_id))}不行,要用{:U(‘upd', array('goods_id'=>$v['goods_id’]))},方括号引用。
10、更改数据:show表单href使用U函数传递goods_id,在控制器upd操作方法,I(‘get.goods_id’),find查询,传递给upd模板,input表单value='{$info.goods_price}’,注意符号书写否则会有问题。
11、保存save方法调用,表单必须有goods_id,可以用hidden处理!!!!!!!
12、修改图片,要在model类重写update方法,刚刚有犯错了!!!!
13、更新logo图片的时候要判断之前是否有图,有图就删掉unlink
14、删除相册图片,模板标签onclick事件传递id,script用的ajax传递请求到控制器,控制器unlink图片,delete表信息,模板根据id删除标签节点
15、添加相册图片,在before_update上传图片,D函数用add方法添加图片
下面尝试自己给自己写接口
1、ios pod安装 ,1、具备pod环境 2、pod init 生成podfile文件,3、终端pod search afn 4、podfile文件填入终端结果 5、终端pod install安装即可。afn已经集成到工程里了
2、配置环境,手机浏览器访问电脑ip,发现路径指向了localhost,改变localhost指向 解决的。思考:是否有其他办法
3、这时,手机浏览器可以看到商品列表界面了,手机afn报400错误,错误请求或者不存在的域名
4、ios 更改http infoplist文件。注意:php那边调用display方法,ios这边afn打印为null
5、tableviewcell上可以正常展示图片和文本了,开心
6、下面研究app post提交数据。前几天也存在app post提交php $_POST收不到数据,但是form表单post提交确可以。一直困扰我的问题终于解决了,那就是afn的request初始化manager.requestSerializer = [AFJSONRequestSerializer serializer];这句话不能要!!!!!!!!!!!