recieve.php判断不严谨导致邮件自动确认收货问题修正
更新时间:2016-07-30 点击量:1998
Tag关键词: 自动 ecshop模板 ecshop4.0模板 二次开发 ecshop3.6模板 ecshop小程序
ecshop商家用户发现后台点击发货时会主动发送邮件到用户预留的联络邮箱中,
简直国外的网站都是这么操作的,所以客户也选用此种方法来告诉用户。
但不料没多久,但是不少买家反映自己分明没有点击邮件中的承认收货连接,可是进入自己基地却发现订单状况现已更改为了现已收到货的状况了。
为什么会出现这样的情况呢?
优易软件分析了下程序代码发现
因为ecshop程序的recieve规划是用户点了连接直接就改动订单状况到承认收货,而QQ邮件spam系统会主动去点邮件里的连接是不是垃圾或者广告地址,
所以全被点成承认收货了,只能经过recieve.php文件来改了。
翻开recieve.php文件查找如下代码:
/* 修改订单发货状态为“确认收货” */ $sql = "UPDATE " . $ecs->table('order_info') . " SET shipping_status = '" . SS_RECEIVED . "' WHERE order_id = '$order_id'"; $db->query($sql); /* 记录日志 */ order_action($order['order_sn'], $order['order_status'], SS_RECEIVED, $order['pay_status'], '', $_LANG['buyer']); $msg = $_LANG['act_ok'];
将以上代码修正为如下:
//确认页面 $act = !empty($_REQUEST['act']) ? rawurldecode($_REQUEST['con']) : 'confirm'; // 验证码 if ($act == 'confirm') { $msg = $order['order_sn']."确认收货?<button onclick=\"location.href='receive.php?act=receive&id=". $order_id."&con=".rawurlencode($consignee)."';\">确定</a>"; } else { /* 修改订单发货状态为“确认收货” */ $sql = "UPDATE " . $ecs->table('order_info') . " SET shipping_status = '" . SS_RECEIVED . "' WHERE order_id = '$order_id'"; $db->query($sql); /* 记录日志 */ order_action($order['order_sn'], $order['order_status'], SS_RECEIVED, $order['pay_status'], '', $_LANG['buyer']); $msg = $_LANG['act_ok']; }
如果文章对您有帮助,就打赏一个吧
«上一篇:ecshop网站后台出现:此网页有重定向循环报错如何解决 下一篇:如何解决ecshop订单修改价格后无法再次付款问题»