专注ECSHOP第九年
始自2007,服务二千多商户,不断为您增光溢彩

进一步优化Ecshop后台订单列表

阿牛阅读(816)

Ecshop后台订单列表 鼠标放在订单号上面,自动显示商品列表,非常方便;如果订购商品多的话,版面不够显示,影响操作。

分享一下,如何让商品列表更加美观。

(修改请注意:请勿用记事本编辑程序文件)

直接修改admin/templates/order_goods_info.htm文件即可,直接修改成:

<table width="100%" cellpadding="3" cellspacing="1">
  <tr>
    <td scope="col"><div align="center"><strong>{$lang.goods_name_brand}</strong></div></td>
    <td scope="col"><div align="center"><strong>{$lang.goods_name}</strong></div></td>
    <td scope="col"><div align="center"><strong>{$lang.goods_sn}</strong></div></td>
    <td scope="col"><div align="center"><strong>{$lang.goods_price}</strong></div></td>
    <td scope="col"><div align="center"><strong>{$lang.goods_number}</strong></div></td>
    <td scope="col"><div align="center"><strong>{$lang.goods_attr}</strong></div></td>
    <td scope="col"><div align="center"><strong>{$lang.storage}</strong></div></td>
    <td scope="col"><div align="center"><strong>{$lang.subtotal}</strong></div></td>
  </tr>
  {foreach from=$goods_list item=goods}
  <tr>
    {if $goods.goods_id gt 0 && $goods.extension_code neq 'package_buy'}
    <td align="center"><a href="../goods.php?id={$goods.goods_id}" target="_blank"><img src="{$goods.goods_thumb}" width="50" height="50"/></a></td>
	<td align="center">{$goods.goods_name} {if $goods.brand_name}[ {$goods.brand_name} ]{/if}
    {if $goods.is_gift}{if $goods.goods_price > 0}{$lang.remark_favourable}{else}{$lang.remark_gift}{/if}{/if}
    {if $goods.parent_id > 0}{$lang.remark_fittings}{/if}</td>
    {else}
    <td align="center">{$goods.goods_name}{$lang.remark_package}</td>
    {/if}
    <td align="center">{$goods.goods_sn}</td>
    <td><div align="center">{$goods.formated_goods_price}</div></td>
    <td><div align="center">{$goods.goods_number}
    </div></td>
    <td align="center">{$goods.goods_attr|nl2br}</td>
    <td><div align="center">{$goods.storage}</div></td>
    <td><div align="center">{$goods.formated_subtotal}</div></td>
  </tr>
  {/foreach}
</table>

效果图:  下载,按编码覆盖,覆盖前请做好备份。

225330_mkxo_102350

PS.覆盖前请做好备份。

ECSHOP限制会员货到付款

阿牛阅读(712)

前文:货到付款可以大大的提高用户体验,增加用户对网站的好感。不过不限量的货到付款也会给网站带来不少麻烦。比如竞争对手的恶意下单0。。

当前电子商务的发展未来,必定是一个买卖双方高度的诚信的局面,社会诚信机制的有效建立,将会更加有利与电子商务市场的发展。那么,未来减少一些不必要的损失,我们可以对我们的一些忠诚度较高的用户,才可以享受我们的货到付款功能。下面来说说具体的思路。

打开根目录下的flow.php文件,找到 612 行的这段代码

$payment_list = available_payment_list(1, $cod_fee);

修改为

$mark = 0;
if ($_SESSION['user_id'] > 0 and $_SESSION['user_mark'] > 1) {
    $mark = 1;
} 
$payment_list = available_payment_list($mark, $cod_fee);

代码中的 $_SESSION[‘user_mark’] 为用户的级别,1为普通用户,当然也可以自己的需求来调整。这只是提供一种思路。灵活运用即可。

查看会员等级ID,可以直接在后台,会员等级,查看会员等级所属ID号。

建立ECSHOP自己的SITEMAP

阿牛阅读(843)

很多人都知道sitemap对于一个网站有多大的意义。就像你去一个地方旅行。如果你想尽快的知道有关于地方地理这个地方有什么路线。那么地图将会是你最优秀的选择。而sitemap就相当于是一个地图。

当然,ECSHOP有sitemap的功能,但工具有点薄弱。无法实现自己想要的结果。

首先我们明确下建立Sitemap的目的:

告诉搜寻器你的网站都有什么网页;特别是网站首页没有直接及间接连结的网页。

当然也不一定要将我们网站的所有网页放在Sitemap中,我们只需将自己认为重要的网页放在Sitemap中也可以。其他网页,我们可以让搜寻器自行去拿取。

更多资料:https://support.google.com/webmasters/answer/156184?hl=zh- Hant&ref_topic=8476

 

如何建立Sitemap,请参看:https://support.google.com/webmasters/answer/183668?hl=zh-Hant&ref_topic=8476

blog.uuecs.com的Sitemap:https://blog.uuecs.com/sitemap_baidu.xml

www.uuecs.com的Sitemap:http://www.uuecs.com/sitemap.html

sitemap不光是搜索引擎的要求。其实作为一个正规的网站有一个sitemap是很必须的事情。那么怎么拥有sitemap标准文件呢?

说明:
<url> 
<loc>http://www.uuecs.com/</loc> <-网站中的一个网页
<changefreq>weekly</changefreq> <-这个网页更新的频率
<priority>0.90</ priority> <-这个网页在你网站中的重要性;1是最重要,0.01是最不重要
</url>

提交你的Sitemap

Google, Bing及百度都有站长工具可以提交Sitemap,搜一下“站长工具”及“Sitemap”就可以了。

另外有个工具相当的不错,生成sitemaps非常简单,百度搜索下“sitemapx”,鼠标选择几下,应该能达到你想要的效果。

ECSHOP生成二维码

阿牛阅读(2266)

二维条形码,最早发明于日本,它是用某种特定的几何图形按一定规律在平面(二维方向上)分布的黑白相间的图形记录数据符号信息的,在代码编制上巧妙地利用构成计算机内部逻辑基础的“0”、“1”比特流的概念,使用若干个与二进制相对应的几何形体来表示文字数值信息,通过图象输入设备或光电扫描设备自动识读以实现信息自动处理。它具有条码技术的一些共性:每种码制有其特定的字符集;每个字符占有一定的宽度;具有一定的校验功能等。同时还具有对不同行的信息自动识别功能、及处理图形旋转变化等特点。

二维条形码具有储存量大、保密性高、追踪性高、抗损性强、备援性大、成本便宜等特性,这些特性特别适用于表单、安全保密、追踪、证照、存货盘点、资料备援等方面。

本文介绍几种使用ECSHOP生成二维码的方法.

一、使用google api 生成二维码

<?php
/**
 * google api 生成二维码【QRcode可以存储最多4296个字母数字类型的任意文本,具体可以查看二维码数据格式】
 * @param string $data 二维码包含的信息,可以是数字、字符、二进制信息、汉字。不能混合数据类型,数据必须经过UTF-8 URL-encoded.如果需要传递的信息超过2K个字节,请使用POST方式
 * @param int $widhtHeight 生成二维码的尺寸设置
 * @param string $EC_level 可选纠错级别,QR码支持四个等级纠错,用来恢复丢失的、读错的、模糊的、数据。
 *                         L-默认:可以识别已损失的7%的数据
 *                         M-可以识别已损失15%的数据
 *                         Q-可以识别已损失25%的数据
 *                         H-可以识别已损失30%的数据
 * @param int $margin 生成的二维码离图片边框的距离
 */

function generateQRfromGoogle($data, $widhtHeight='150', $EC_level='L', $margin='0')
{
	$url = urlencode($data);
	echo '<img src="http://chart.apis.google.com/chart?chs='.$widhtHeight.'x'.$widhtHeight.'&cht=qr&chld='.$EC_level.'|'.$margin.'&chl='.$data.'" widhtHeight="'.$widhtHeight.'" widhtHeight="'.$widhtHeight.'"/>';
}

function qrcode($width, $height, $string)
{
	$post_data = array();
	$post_data['cht'] = 'qr';
	$post_data['chs'] = $width."x".$height;
	$post_data['chl'] = $string;
	$post_data['choe'] = "UTF-8";
	$url = "http://chart.apis.google.com/chart";
	$data_Array = array();

	foreach($post_data as $key=>$value)
	{
		$data_Array[] = $key.'='.$value;
	}

	$data = implode("&", $data_Array);
	$ch = curl_init();
	curl_setopt($ch, CURLOPT_POST, 1);
	curl_setopt($ch, CURLOPT_HEADER, 0);
	curl_setopt($ch, CURLOPT_URL, $url);    
	curl_setopt($ch, CURLOPT_POSTFIELDS, $data);
	curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
	$result = curl_exec($ch);
	echo "<img src =\"data:image/png;base64,".base64_encode($result)."\" >"; //不写header
	//return $result; //写header("Content-type:image/png");
}

$data = 'http://www.phpally.com'; //生成二维码的字符串

//GET方式
generateQRfromGoogle($data);

//POST方式
$width = 150;
$height = 150;
echo qrcode($width, $height, $data);
?>

 

生成的二维码如下:

20130829112838

二、使用php QR Code类库生成二维码

注意使用该类库必须首先下载类库包,下载地址:http://phpqrcode.sourceforge.net

 

<?php 
include "./phpqrcode.php";
$data = 'http://www.phpally.com'; //生成二维码的字符串
$errorCorrectionLevel = "L";
$matrixPointSize = "4";
QRcode::png($data, false, $errorCorrectionLevel, $matrixPointSize);
?>

 

三、使用libqrencode生成二维码

地址:http://fukuchi.org/works/qrencode/index.en.html

四、使用QRcode Perl CGI & PHP scripts生成二维码

地址:http://www.swetake.com/qr/qr_cgi.html

二维码(2-dimensional bar code),是用某种特定的几何图形按照一定规律在平面分布的黑白相间的图形记录数据符合信息的。常用到的码制有:Data Matrix , Maxi Code , Aztec , QR Code , Vericode , PDF417 , Ultracode , Code 49 , Code 16K等,其中最流行莫过于QR CODE。

 

QR CODE 介绍

20130829112138

上图是一个QR CODE的基本结构,其中:

位置探测图形、位置探测图形分隔符、定位图形:用于对二维码的定位,对每个QR码来说,位置都是固定存在的,只是大小规格会有所差异;
校正图形:规格确定,校正图形的数量和位置也就确定了;
格式信息:表示改二维码的纠错级别,分为L、M、Q、H;
版本信息:即二维码的规格,QR码符号共有40种规格的矩阵(一般为黑白色),从21×21(版本1),到177×177(版本40),每一版本符号比前一版本 每边增加4个模块。
数据和纠错码字:实际保存的二维码信息,和纠错码字(用于修正二维码损坏带来的错误)。

简要的编码过程:

1. 数据分析:确定编码的字符类型,按相应的字符集转换成符号字符; 选择纠错等级,在规格一定的条件下,纠错等级越高其真实数据的容量越小。
2. 数据编码:将数据字符转换为位流,每8位一个码字,整体构成一个数据的码字序列。其实知道这个数据码字序列就知道了二维码的数据内容。

20130829112600

20130829112620

数据可以按照一种模式进行编码,以便进行更高效的解码,例如:对数据:01234567编码(版本1-H),
1) 分组:012 345 67
2) 转成二进制:012→0000001100,  345→0101011001, 67 →1000011
3) 转成序列:0000001100 0101011001 1000011
4) 字符数 转成二进制:8→0000001000
5) 加入模式指示符(上图数字)0001:0001 0000001000 0000001100 0101011001 1000011
对于字母、中文、日文等只是分组的方式、模式等内容有所区别。基本方法是一致的

3. 纠错编码:按需要将上面的码字序列分块,并根据纠错等级和分块的码字,产生纠错码字,并把纠错码字加入到数据码字序列后面,成为一个新的序列。

20130829113241

在二维码规格和纠错等级确定的情况下,其实它所能容纳的码字总数和纠错码字数也就确定了,比如:版本10,纠错等级时H时,总共能容纳346个码字,其中224个纠错码字。就是说二维码区域中大约1/3的码字时冗余的。对于这224个纠错码字,它能够纠正112个替代错误(如黑白颠倒)或者224个据读错误(无法读到或者无法译码),这样纠错容量为:112/346=32.4%

4. 构造最终数据信息:在规格确定的条件下,将上面产生的序列按次序放如分块中。按规定把数据分块,然后对每一块进行计算,得出相应的纠错码字区块,把纠错码字区块 按顺序构成一个序列,添加到原先的数据码字序列后面。如:D1, D12, D23, D35, D2, D13, D24, D36, … D11, D22, D33, D45, D34, D46, E1, E23,E45, E67, E2, E24, E46, E68,…

5. 构造矩阵:将探测图形、分隔符、定位图形、校正图形和码字模块放入矩阵中。

20130829113437

把上面的完整序列填充到相应规格的二维码矩阵的区域中

6. 掩摸:将掩摸图形用于符号的编码区域,使得二维码图形中的深色和浅色(黑色和白色)区域能够比率最优的分布。

7. 格式和版本信息:生成格式和版本信息放入相应区域内。版本7-40都包含了版本信息,没有版本信息的全为0。二维码上两个位置包含了版本信息,它们是冗余的。版本信息共18位,6X3的矩阵,其中6位时数据为,如版本号8,数据位的信息时 001000,后面的12位是纠错位。

 

Ecshop常用自定义函数 二次开发手册整理

阿牛阅读(839)

ECSHOP中一些常用的二次开发函数整理

 

判断手机号码函数

函数原型:INT chk_phone($phone)

参数说明:$phone必选参数 $phone 代表手机号

返回值说明: 当为1时: 代表该手机号码移动

当为2时: 代表该手机号码联通

当为3时: 代表该手机号码电信

当为4时: 代表该手机号码非法号码

随机字符串函数

函数原型:STRING crt_rand($length = 8, $type = ‘word’)

参数说明:$length 字符串的长度 必选

$type 字符串的类型(num word word2 pwd)可选 ,默认为 word类型

num:随机的字符串为纯数字

word:随机的字符串为字符、数字、下划线

word2:随机的字符串为数字,下划线

pwd:随机的字符串为密码

返回值说明:随机出指定位数、类型字符串

 

生成编辑器函数

函数原型:STRING yw_create_html_editor($input_name, $input_value = ”)

参数说明:$input_name 编辑器的名称

返回值说明:$input_value  编辑器的值

说明:该函数可以生产一个或者多个编辑器

 

获取分类下商品函数

函数原型:STRING yw_category_goods($cat_id = 0, $num = 10)

参数说明:$cat_id 指定分类ID

$num 取出商品的数量

返回值说明:该函数会获取指定分类下的商品,数量默认为10

 

文本转换数组函数

函数原型:ARRAY yw_txt2arr($txt, $split = “\n”)

参数说明:$txt:将要转换的文本

$split = “\n”:换行符

返回值说明:该函数把指定的文本转换成数组 返回值为数组

 

 字符全角转换半角函数

函数原型:STRING number_quan2ban($str)

参数说明:$str 转换的字符串 必选

返回值说明:将指定的字符串全角转换成半角字符串

 

获取分类下最新文章函数

函数原型:STRING yw_category_article($cat_id = 0, $num = 10)

参数说明:$cat_id 指定分类ID

$num 取出文章的数量

返回值说明:该函数将取出指定一个分类下最新文章,默认取出文章数量为10

 

获取推荐商品函数

函数原型: STRING yw_recommend_goods($type = ‘new’, $cat_id = 0, $num = 10)

参数说明:$type 类型 可选(new best hot promote hot-promote)

new:新品

best:精品

hot:热销

promote:促销

hot-promote:热销并且促销

$cat_id 指定分类ID

$num 取出商品的数量

返回值说明:该函数会获取指定分类下的商品,类型默认为new, 数量默认为10。

 

去ECSHOP版权,去官方后门,完整版

阿牛阅读(1961)

ECShop是一款B2C独立网店系统,适合企业及个人快速构建个性化网上商店。系统开源但不免费,是基于PHP语言及MYSQL数据库构架开发的跨平台开源程序。目前最新版本为2.7.3 0708版。
1、首先,去掉TITLE中的“Powered by ECShop”

(请注意,请勿用记事本编辑程序,可推荐使用EDITPLUS,小巧好用!)

打开文件:includes/lib_main.php
查找:$page_title = $GLOBALS[’_CFG’][’shop_title’] . ‘ – ‘ . ‘Powered by ECShop’;
将其改为
$page_title = $GLOBALS[’_CFG’][’shop_title’];
2、去掉页脚的版权信息,防止版权信息乱飞。
在ecshop根目录/themes/当前模板名/library/page_footer.lbi中, 找到如下代码并删除:
<a href=”http://www.ecshop.com” target=”_blank” style=”font-size:10px”>Powered by <strong><span style=”color: #3366FF”>ECShop</span> <span style=”color: #FF9966″>{$ecs_version}</span></strong></a><br />
删掉底部ecshop的logo,可选操作
默认模板:在ecshop根目录/themes/default/library/page_footer.lbi, 找到如下代码:
<img src=”../images/footer-logo.gif” alt=”” id=”footer-logo” />
将其删掉即可.
3、修改文件代码头部的Generator标记,可防止其他程序识别为ECSHOP
修改文件:includes/cls_ecshop.php
查找:
define(‘APPNAME’, ‘ECSHOP’);
修改为:
define(‘APPNAME’, ‘自定义的网站代号’);
4、修改文件:js/common.js
查找:onload = function() 代码段,全部删除
=================================
(2)去掉ECSHOP官方的后门检测程序。代码
=================================
1、修改文件:admin/shop_config.php
查找:$spt .= ‘”></script>’;
在之后添加一行:
$spt = ”;或者直接注释掉;
2、修改文件:admin/templates/index.htm
查找:
  <frameset rows=”0, 0″ framespacing=”0″ border=”0″>
  <frame src=”http://api.ecshop.com/record.php?mod=login&url={$shop_url}” id=”hidd-frame” name=”hidd-frame” frameborder=”no” scrolling=”no”>
  </frameset>
删除或注释
3、在MYSQL数据库的数据表:shop_config中查找字段code值为 certi 的记录,其值为:http://service.shopex.cn/openapi/api.php ,修改为一个错误的网址!
如:http://xxxxxxxxxx/openapi/api.php
4、修改文件:admin/templates/top.htm
查找:
Ajax.call(‘index.php?is_ajax=1&act=license’,”, start_sendmail_Response, ‘GET’, ‘JSON’);
注释或删除掉
5、修改文件:admin/templates/menu.htm
查找:
<script language=”JavaScript” src=”http://api.ecshop.com/menu_ext.php?charset={$charset}&lang={$help_lang}”></script>
注释或删除掉
6、修改文件:admin/templates/start.htm
查找:
<ul style=”padding:0; margin: 0; list-style-type:none; color: #CC0000;”>
 <!– <script type=”text/javascript” src=”http://bbs.ecshop.com/notice.php?v=1&n=8&f=ul”></script>–>
</ul>
注释或删除掉
7、修改文件:admin/index.php
查找:
$t = new transport;
        $api_comment = $t->request(‘http://api.ecshop.com/checkver.php’, $apiget);
        $api_str = $api_comment[“body”];
        echo $api_str;
注释或删除掉
8、删除后台所有默认的友情链接以及默认LOGO
9、修改后台管理中相关文字

打开language/zh_cn/admin/common.php

$_LANG[‘cp_home’] = ‘ECSHOP 管理中心’;
$_LANG[‘copyright’] = ‘版权所有 &copy; 2005-2009 上海商派网络科技有限公司,并保留所有权利。’;

 

其他后门修改,如下所示:

1、删除【云服务中心】

删除/admin/cloud.php

删除/admin/templates/menu.htm中以下代码

Ajax.call(‘cloud.php?is_ajax=1>act=menu_api’,”, start_menu_api, ‘GET’, ‘JSON’);
删除/admin/templates/start.htm中以下代码

Ajax.call(‘cloud.php?is_ajax=1>act=cloud_remind’,”, cloud_api, ‘GET’, ‘JSON’);

function cloud_close(id)
{
Ajax.call(‘cloud.php?is_ajax=1>act=close_remind>remind_id=’+id,”, cloud_api, ‘GET’, ‘JSON’);
}
删除/languages/zh_cn/admin/cloud.php

2、删除【数据库管理】-【转换数据】

删除/admin/convert.php

删除/admin/templates/convert_main.htm

删除/languages/zh_cn/convert目录及目录下的所有文件

删除/languages/zh_cn/admin/convert.php

/admin/includes/inc_menu.php中删除以下代码

$modules[’13_backup’][‘convert’] = ‘convert.php?act=main’;
/admin/includes/inc_priv.php中删除以下代码

$purview[‘convert’] = ‘convert’;
/languages/zh_cn/admin/priv_action.php中删除以下代码

$_LANG[‘convert’] = ‘转换数据’;
3、删除【系统设置】-【授权证书】

删除/admin/license.php

删除admin/templates/license.htm

删除/admin/includes/inc_menu.php中以下代码

$modules[’11_system’][‘shop_authorized’] = ‘license.php?act=list_edit’;
删除/languages/zh_cn/admin/priv_action.php中以下代码

$_LANG[‘shop_authorized’] = ‘授权证书’;
4、删除后台右上角【帮助】和【关于ECSHOP】

删除/admin/templates/top.htm中以下代码

<li><a href=”/knowledge/used.html?act=about_us” target=”main-frame”>{$lang.about}</a></li>
<li><a href=”javascript:web_address();”>{$lang.help}</a></li>

 

END,完成所有修改。
转载请注意保留版权 阿牛ECSHOP

阿牛谈有关ECSHOP服务器文件的安全设置

阿牛阅读(1656)

ECSHOP由于官方长时间任由发展,几乎停滞不前,网络上各种漏洞各种BUG层出不穷,为能防范绝大多数后门或者漏洞,请参考此贴。
(1)设定好目录相关权限。

只开放 temp,images,themes,data。4个目录的读写权限,其他目录只能读取,即为0644。

(2)修改默认后台目录名称。

修改默认后台文件目录admin,一般为难以猜解的目录名称,如“ab890Iadmin”

(3)修改默认数据库前缀。

(4)关闭ECSHOP错误提示,并把错误信息直接写入网站文件中,不直接显示到前台。(很重要)

修改函数ERRORMSG函数,文件在includes\cls_mysql.php

function ErrorMsg($message = '', $sql = '')
    {
        echo "Some Errors....pls check log file.";

        if(!file_exists(ROOT_PATH.'data/sql_log'))
        {
        	mkdir(ROOT_PATH.'data/sql_log');
        }

        if ($message)
        {
           $msg="ECSHOP info\r\n: $message";
        }
        else
        {
            $msg="MySQL server error report:\r\n".print_r($this->error_message,true);
        }       

				@file_put_contents(ROOT_PATH.'data/sql_log/'.date('Y-m-d-H-i-s',time()).'.txt',$msg);			

        exit;
    }

 

(5)定期更新官方补丁。
(6)删除帝国备份文件夹,demo文件夹,install等文件夹。(切记!)

完成以上6则,基本可以防护80%的ECSHOP漏洞以及后门了。

如果您这边是服务器操作系统,下面的文章就很重要。

(1)修改PHP.INI 文件配置,让ECSHOP更加安全。

# 禁用危险的函数(很重要)

disable_functions = phpinfo, system, mail, exec

(2)PHP.INI.可关闭PHP自带的ZIP组件;

(3)PHP.INI其他修改

#不将PHP错误消息暴露给外部用户

设定display_errors = Off

(4)设定好相关权限,比如根目录禁止写入文件。设置权限为0644.

转载请注明出处:阿牛ECSHOP

 

如何修改wordpress中的robots.txt文件

阿牛阅读(1023)

在使用wordpress的时候,常常会碰到不能修改、设置Robots.txt文件的问题。即使用ftp工具从根目录下载robots,修改后上传依然显示的原来的内容,根本无法重新设置。这是因为wp自带的robots.txt文件是虚拟robots,下面我就教大家一个最简单的方法解决这个问题:

搜索wp插件:KB Robots.txt,或者在后台搜索KB Robots。插件下载地址:http://downloads.wordpress.org/plugin/kb-robotstxt.zip

阿牛ECSHOP 更专业 更方便

关于我们联系我们