ECSHOP中recieve.php判断不严谨导致邮件自动确认收货

2016-09-02 16:28 来源:www.chinab4c.com 作者: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\'].\"确认收货?