燕十八商城笔记资料.docx
- 文档编号:16288720
- 上传时间:2023-07-12
- 格式:DOCX
- 页数:18
- 大小:300.02KB
燕十八商城笔记资料.docx
《燕十八商城笔记资料.docx》由会员分享,可在线阅读,更多相关《燕十八商城笔记资料.docx(18页珍藏版)》请在冰点文库上搜索。
燕十八商城笔记资料
第168课:
文件上传参数细节
如果上传出错了,错误代码可能有哪些?
其值为 1,上传的文件超过了 php.ini 中 upload_max_filesize 选项限制的值。
其值为 2,上传文件的大小超过了 HTML 表单中 MAX_FILE_SIZE 选项指定的值。
其值为 3,文件只有部分被上传。
其值为 4,没有文件被上传。
其值为 6,找不到临时文件夹。
PHP 4.3.10 和 PHP 5.0.3 引进。
其值为 7,文件写入失败。
PHP 5.1.0 引进。
第172课:
GD安装及画图流程
GD库画图的典型流程!
1:
创建画布
2:
创建各种颜料
3:
绘画(如写字,画线,画矩形等形状)
4:
保存成图片
5:
清理战场,销毁画布!
/*
1:
造画布(多宽,多高) imagecreatetruecolor()//新建一个真彩色图像imagecreatetruecolor
imagecreate//新建一个基于调色板的图像imagecreate
返回是资源类型
*/
$width = 300;
$height = 200;
$im = imagecreatetruecolor($width,$height);
$im = imagecreate($width,$height);
/*
2:
创建颜料 imagecolorallocate //imagecolorallocate
imagecolorallocate(画布资源,红,绿,蓝)
*/
$blue = imagecolorallocate($im,0,0,255);
/*
3:
画图
先用最简单的,泼墨渲染!
imagefill
imagefill是用颜料填充画布
bool imagefill (画布资源 , 填充的起始点x值 , 填充的起始点y值 , 填充颜色)
*/
imagefill($im,0,0,$blue);//imagefill
/*
4:
保存!
imagepng
imagejpeg
imagegif
..
来保存成不同图片格式
*/
if(imagepng($im,'./01.png')) {
echo '图片生成成功!
';
} else {
echo 'fail';
}
/*
5:
销毁画布
画布很耗资源,注意释放!
*/
imagedestroy($im);//imagedestroy
第173课:
GD画图流程详解
functionLoadGif($imgname)
{
/*尝试打开*/
$im=@imagecreatefromgif($imgname);
/*判断是否打开失败*/
if(!
$im)
{
/*创建一个空白画布*/
$im=imagecreatetruecolor(150,30);
$bgc=imagecolorallocate($im,255,255,255);
$tc=imagecolorallocate($im,0,0,0);
/*imagefilledrectangle*/
imagefilledrectangle($im,0,0,150,30,$bgc);
/*输出错误信息*/
imagestring($im,1,5,5,'Errorloading'.$imgname,$tc);
}
return$im;
}
$img=LoadGif('im01.gif');
imagegif($img);
imagedestroy($img);
在验证码里,这个功能必用. 生成文字干扰线
bool imageline (resource $image ,int $x1 ,int $y1 ,int $x2 ,int $y2 ,int $color )
第174课:
GD完成验证码
bool imagestring ( resource $image , int $font , int $x , int $y , string $s , int $col )
参数分别代表:
画布资源,字体大小(1-5中选择), 字符最左上角的x坐标,y坐标 ,要写的字符串,颜色
/*
创建验证码
创建画布
充填颜色浅色
随机颜色
字符串颜色深色
干扰线颜色中浅色
三条干扰线
充填背景
画干扰线
写字
生成图片
销毁画布
验证验证码
刷新验证码
*/
session_start();
//创建验证字符串
$char="ABCDEFGHIJKMNPQRSTUVWXYZabcdefghijkmnpqrstuvwxyz23456789";
$str=substr(str_shuffle($char),-4);
$_SESSION['code']=strtolower($str);//将字符放入SESSION中
//新建真彩空白图
$im=imagecreatetruecolor(50,25);
//定义颜色
$str_color=imagecolorallocate($im,mt_rand(0,150),mt_rand(0,150),mt_rand(0,150));
$fill_color=imagecolorallocate($im,mt_rand(240,255),mt_rand(240,255),mt_rand(240,255));
$line_color=imagecolorallocate($im,mt_rand(220,255),mt_rand(220,255),mt_rand(220,255));
//充填背景颜色
imagefill($im,0,0,$fill_color);
//生成验证码内容
imagestring($im,5,8,5,$str,$str_color);
//干扰线
imageline($im,mt_rand(0,25),mt_rand(0,25),50,mt_rand(0,25),$line_color);
imageline($im,0,mt_rand(0,25),50,mt_rand(0,25),$line_color);
//生成验证码图片
header('content-type:
image/png');
imagepng($im);
//销毁画布
imagedestroy($im);
第175课:
中文验证码
imagettftext ( resource $image , float $size , float $angle , int $x , int $y , int $color , string $fontfile , string $text )
imagettftext($im,15,3,0,20,$str_color,'./code.ttf',$str);
画布,弧度,字体大小,x,y,颜色,字体,字符串
第176课:
画矩形及饼状图
矩形:
bool imagerectangle (resource $image ,int $x1 ,int $y1 ,int $x2 ,int $y2 ,int $col )
充填
bool imagefilledrectangle (resource $image ,int $x1 ,int $y1 ,int $x2 ,int $y2 ,int $col )
参数:
画布资源, 左上角x坐标,左上y坐标,右下x坐标,右下y坐标,颜色
imagerectangle($im,10,10,150,150,$blue);
确定(x1,y1)(x2,y2)两点后,由两点之间的直线为中线,生成两个等边三角形
圆:
boolimageellipse(resource$image,int$cx,int$cy,int$width,int$height,int$color)
充填:
boolimagefilledellipse(resource$image,int$cx,int$cy,int$width,int$height,int$color)
imageellipse画布,圆心x,圆心y,宽,高,颜色
imageellipse($im,150,150,100,50,$blue);
坐标点(x,y)为圆心,画高为height,宽为width的圆
画椭圆弧
bool imagearc(resource$image,int$cx,int$cy,int$w,int$h,int$s,int$e,int$color)
以cx,cy(图像左上角为0,0)为中心在image所代表的图像中画一个椭圆弧。
w和h分别指定了椭圆的宽度和高度,起始和结束点以s和e参数以角度指定。
0°位于三点钟位置,以顺时针方向绘画。
先根据圆心(xy)、宽、高、生成一个圆,再截根据弧度取圆点弧
imagearc($im,100,100,150,150,-90,0,$color);
bool imagefilledarc (resource $image ,int $cx ,int $cy ,int $width ,int $height ,int $start ,int $end ,int $color ,int $style )
imagefilledarc($im,100,100,150,150,0,sum($a[0]),$yellow,IMG_ARC_EDGED);
基本与imagearc一致
1 IMG_ARC_CHORD 直线连圆弧2端
0 IMG_ARC_PIE 弧线连圆弧2端
4 IMG_ARC_EDGED 指明用直线将起始和结束点与中心点相连,
2 IMG_ARC_NOFILL 不填充轮廓(默认是填充的)
imagefilledarc($im,100,100,150,150,0,sum($a[0]),$yellow,IMG_ARC_EDGED);
imagefilledarc($im,100,100,150,150,0,sum($a[0]),$green,1);//IMG_ARC_CHORD 直线连圆弧2端
imagefilledarc($im,100,100,150,150,0,sum($a[0]),$green,0); //0 IMG_ARC_PIE 弧线连圆弧2端
imagefilledarc($im,100,100,150,150,0,sum($a[0]),$green,2);//IMG_ARC_NOFILL不充填
imagefilledarc($im,100,100,150,150,0,sum($a[0]),$green,4);//IMG_ARC_EDGED 指明用直线将起始和结束点与中心点相连
第177课:
图片缩略及水印函数
从jpeg图片生成画布
resource imagecreatefromjpeg (string $filename )
图像复制函数
bool imagecopy (resource $dst_im ,resource $src_im ,int $dst_x ,int $dst_y ,int $src_x ,int $src_y ,int $src_w ,int$src_h )
//画布,资源图,画布x,画布y,资源 图x,资源图y,资源图宽,资源图高;
图像透明函数
bool imagecopymerge (resource $dst_im ,resource $src_im ,int $dst_x ,int $dst_y ,int $src_x ,int $src_y ,int $src_w ,int $src_h ,int $pct )
画布,资源图片,画布x,画布y,资源图x,资源图y,资源图宽,资源图高,资源图透明度(1-100)
imagecopymerge($big,$yy,0,0,0,0,200,300,20);
图片略缩
bool imagecopyresampled (resource $dst_image ,resource $src_image ,int $dst_x ,int $dst_y ,int $src_x ,int $src_y ,int$dst_w ,int $dst_h ,int $src_w ,int $src_h )
画布,资源图片,画布x,画布y,资源图x,资源图y,资源图现在宽,资源图现在高,资源图原宽,资源图原高,
imagecopyresampled($big,$yy,0,0,0,0,55,77,553,768);
提高图片渲染效果
imagealphablending($yy,true);
第178课:
开发缩略图与水印类
imageInfo
getimagesize获取图片信息
获取宽度、高度、文件类型
water
获取源图、水印图信息
水印不能比源图大
计算水印位置
生成动态函数建图层
imagecopymerge合成水印
生成动态函保存图片
销毁画布
thumb
获取源信息
计算缩放比,取小值
创建白色底板
生成动态函数创建源图图层
计算缩放大小,补白大小
imagecopyresampled
生成动态函保存图片
销毁画布
第184课:
深入理解cookie概念
类似defineACC
if(!
isset($_COOKIE['userid'])){
echo"请先登录";
exit;
}
print_r($_COOKIE);
echo"你是".$_COOKIE['userid'];
第185课:
cookie设置读取与销毁
1、关闭后过期
2、超时过期
3、主动过期
不可跨域名,可以是子域名
只能存储字符串,数字等标量数据
bool setcookie (string $name [,string $value [,int $expire =0[,string $path [,string $domain [,bool $secure =false[,bool $httponly =false]]]]]])
第188课:
session语法详细讲解
session还可以存储数组/对象 (除了资源型,其他7种都可以)
session的有效,取决于cookie,
cookie在哪儿有效,session自然就能读到
PHP如下选项,指定了sessionid这个cookie的有效路径是 / 路径,
自然session无论在多深的目录下设置,而session在整站都有效.
第194课:
商城实战之购物车类
实例化
单例模式
生成购物车到session
添加商品
需要判断商品是否已存在购物车列表
如果存在只增加数量
修改商品数量
是否存在购物车
存在则只修改数量
增加商品数量
是否存在购物车
存在则在原有数量基础增加数量
减少商品数量
存在则减少
减少到小于0则删除商品
删除商品
查询商品种类
查询商品总数
购物车空则直接为0
查询商品总额
商品单价X商品数量
获取购物车所有信息
清空购物车
实例化,session_start()必须在实例化之前
第196课:
把商品加到购物车
判断用户行为
购买商品 (默认)
删除购物车商品
清空购物车商品
提交订单
获取CartTool实例
获取GoodsModel实例
添加商品到购物车
商品id、数量从GET获取
商品名称、单价从数据库查询
判断是否下架、回收站
添加到购物车
判断库存
库存不足撤回添加购物车操作
获取购物车商品列表
购物车为空返回首页
根据购物车商品ID从数据库获取商品信息
计算商品总价
计算商品优惠
引入结算界面
清空购物车
删除购物车商品
生成订单
获取购物车商品列表
购物车为空返回首页
根据购物商品id从数据库获取详细信息
计算商品总价
计算商品优惠
提交订单
从表单获取信息
表单数据检验
表单数据自动过滤
表单数据自动填充
写入总金额
写入用户名
从SESSION获取用户信息写入
userid、username
生成订单号
生成订单号
如存在则重新生成
写入订单信息
OrderModel
负责处理订单写入
生成订单SN
订单写入
取消订单
order_id,order_sn,user_id,zone,address,zipcode,reciver,email,tel,mobile,building,best_time,add_time,order,amount,
获取数据库中订单id
调用Model:
:
insert_id()
mysql_insert_id返回最新的auto_increment列的自增长的值
处理商品信息准备写入
写入订单商品信息
OrderGoodsModel
负责订单商品信息写入
写入商品信息
og_id,order_id,order_sn,goods_id,goods_name,goods_number,shop_price,subtotal
记录写入成功条数
验证写入成功数是否与商品数一致
不一致则撤销写入操作
撤销订单信息
下订单失败
下订单成功
减少库存
清空购物车
在线支付
订单取消
订单状态
第200课:
分页类及在商城中的应用
总条数$total
每页条数$perpage
当前页$page
总页数$cnt=ceil($total/$perpage);//相除,向上取整.
第1页显示条数:
0-perpage条
$page页显示:
从($page-1)*$perpage+1条开始取$perpage条数据
构造函数获取参数
总页数
页
单页数
获取总页数
总数/单页数
$cnt=$total/$perpage
总页数
$cnt
获取URL参数
将除page外所有参数存入数组
parse_url解析URL,返回其组成部分
parse_str将字符串解析成多个变量
http_build_query生成请求字符串
拼接page前的url参数
计算页码
创建页码数组
$nav[0]为当前页
放入数组第0位
$nav[0]='
验证数组页码不能超过限制数
上一页为page-1
下一页为page+1
上一页必须大于0
下一页必须小于等于总页码
页码放入数组
上一页放入数组头部
array_unshift
下一页放入数组尾部
array_push
页码数组格式化成字符串
第205课:
网站在线支付整合
提交订单
发起付款
验证密钥
检验数据
付款成功
回调结果
同步回调
异步回调
接收回调数据
验证密钥
验证数据
修改订单状态
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 十八 商城 笔记 资料