curl 检查服务器是否支持 gzip

http://www.ninjasys.co.uk/linux/using-curl-to-check-if-a-page-is-gzippedcompressed/

方法如下

curl -I -H 'Accept-Encoding: gzip,deflate' -H "Host:域名"  http://ip/url
如果结果是
HTTP/1.1 200 OK
Server: nginx/0.8.52
Date: Tue, 05 Jul 2011 01:28:30 GMT
Content-Type: application/x-javascript
Last-Modified: Tue, 10 Aug 2010 00:33:24 GMT
Connection: keep-alive
Vary: Accept-Encoding
Expires: Thu, 04 Aug 2011 01:28:30 GMT
Cache-Control: max-age=2592000
Content-Encoding: gzip  很好支持

如果没有 Content-Encoding: gzip 就不支持gzip

64位linux安装vsftpd虚拟用户的几点注意

  1. auth required /lib64/security/pam_userdb.so db=/etc/vsftpd_login  注意红色部分!!!
  2. 如果出现登陆503错误,请看 tail -f /var/log/secure 以确定具体是否是因为pam登陆验证的问题
  3. 注意权限方面问题,
  4. google 最好搜索英文 vsftpd virtual user
  5. http://linuxforfun.net/2008/04/05/vsftpd-virtual-users/  可以参考下

phpwind 的一个小错误导致cookie失效的解决,表象是无法注册登录

一个phpwind 8.0 utf8 系统错误表现为无法注册登录,费老劲调试,发现 data/sql_config.php 文件由于在windows 记事本编辑后导致被自动增加了bom ,前端cookie 输出因为bom 的 原因,导致浏览器无法生成cookie,从而无法登录和注册

在editplus 另存成utf-8 无bom ,上传问题解决

参看 http://www.phpsir.com/ecshop-utf8-bom.html

总结: 要多用 linux curl 去查看文件输出

 

ecshop系列:后台导出程序错误,ecshop应该认错

今天一个客户给我发来ecshop后台导出出现

ERROR 1052 (23000): Column ‘brand_id’ in where clause is ambiguous

经查发现是不同表存在相同字段而在where 语句中未区分造成

测试运行语句

SELECT g.*, b.brand_name as brandname FROM `usason`.`ecs_goods` AS g LEFT JOIN `usason`.`ecs_brand` AS b ON g.brand_id = b.brand_id WHERE is_delete = 0 AND brand_id = ’17′;

修改为

SELECT g.*, b.brand_name as brandname FROM `usason`.`ecs_goods` AS g LEFT JOIN `usason`.`ecs_brand` AS b ON g.brand_id = b.brand_id WHERE is_delete = 0 AND g.brand_id = ’17′;

红色部分注意

那么就只有去查后台程序代码了

发现在admin/includes/lib_main.php 的get_where_sql($filter)的函数中出现了

$where .= isset($filter->brand_id) && $filter->brand_id > 0 ? ” AND brand_id = ‘” . $filter->brand_id . “‘” : ”;

修改为

$where .= isset($filter->brand_id) && $filter->brand_id > 0 ? ” AND g.brand_id = ‘” . $filter->brand_id . “‘” : ”;

问题解决

目前还不知道有其他副作用

好在ecshop命名还算规范

 

phpwind 批量上传解决一例,上传后文件列表消失,mbstring 问题

朋友网站phpwind 7.5 sp3出现批量上传文件后上传文件的列表消失,但是文件已经上传上去了,调试后发现没有写入数据库

跟踪代码在 lib/upload/mutiupload.class.php 文件的update函数中加入调试语句,确认没有写入数据库 ,

原因是 $value['name'] = pwConvert($value['name'], $db_charset, ‘utf-8′); 行有错

经调试 pwConvert 是因为 php没有启用 mbstring 造成,启用后,问题解决

 

ecshop系列:二次开发,扩展分类商品后置

ecshop 的商品是可以属于多个分类,在内部称谓是扩展分类,被记录到ecs_goods_cat 表
现在需求是将某个分类category.php?id=某某的商品列表中含有扩展分类的商品后置
思路: 首先找到存在扩展属性的商品id,形成数组,然后在 $arr 变量里面查找后unset数组的部分key,
并附加array_merge到原来的$arr后

修改category.php 的 category_get_goods 函数
代码如图:

ecshop系列:购买商品增加留言备注功能

在购买商品时候增加对此商品购买的留言备注功能
如图:

开发方法如下:
1) 在goods.dwt 里面加留言字段

2)修改 js/common.js 里面的addToCart 函数

3)修改flow.php 里面关于 if ($_REQUEST['step'] == ‘add_to_cart’) 的处理部分

4)修改includes/lib_order.php 里面的 addto_cart 函数

 

首先修改函数定义

其次修改内容

至此增加memo部分完成,下面是在flow.php 购物车里面显示此留言
5)修改 flow.dwt

ecshop系列:一行代码解决财付通3006错

问题描述:
修改价格后再次点击使用财付通支付时出现“[3006]您的请求无效,请重新再试。”
解决方案
\includes\modules\payment\tenpay.php 行 104
原来的为
$bill_no = str_pad($order['log_id'], 10, 0, STR_PAD_LEFT);
现在修改为
$bill_no = str_pad(rand(1,99),2,0,STR_PAD_LEFT).str_pad($order['log_id'], 8, 0, STR_PAD_LEFT);
问题解决
点击下图看大图