身份证正反面上传插件

一、在ecs_user表新增 (真实姓名) full_name、(身份证号) card_num、( 身份正面 ) idimg_one、(身份反面) idimg_two四个字段
ALTER TABLE  `ecs_users` ADD  `full_name` VARCHAR( 10 ) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL ,
ADD  `card_num` VARCHAR( 255 ) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL ,
ADD  `idimg_one` VARCHAR( 255 ) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL ,
ADD  `idimg_two` VARCHAR( 255 ) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL

二、打开 根目录/themes/default(模板名)/user.dwt
搜索:
<li onclick="window.location = '{:url('user/service')}';"><i class="iconfont fl member-serve-li-oi">&#xe61a;</i><p class="fl">客户服务</p><i class="iconfont fr member-order-i">&#xe60c;</i></li>
 在搜索内容的上面添加下面的代码
<li onclick="window.location = '{:url('flow/identity_in')}';"><i class="iconfont fl member-serve-li-ci">&#xe61d;</i><p class="fl">实名验证</p><i class="iconfont fr member-order-i">&#xe60c;</i></li>

三、打开/include/apps/default/model/UserModel.class.php 文件
在get_profile()方法中查找以下代码:
 $sql = "SELECT user_name, birthday, sex, question, answer, rank_points, pay_points,user_money, user_rank," .

用以下代码替换
$sql = "SELECT user_name, birthday, sex, question, answer, rank_points, pay_points,user_money, user_rank, full_name, card_num, idimg_one, idimg_two," .

查找以下代码:
$info['user_rank'] = $infos['user_rank'];

在这段代码下面添加以下代码:
$info['full_name'] = $infos['full_name'];
        $info['card_num'] = $infos['card_num'];
        $info['idimg_one'] = $infos['idimg_one'];
        $info['idimg_two'] = $infos['idimg_two'];

四、在ecs_order_info表新增 (真实姓名) full_name、(身份证号) card_num、( 身份正面 ) idimg_one、(身份反面) idimg_two四个字段

ALTER TABLE  `ecs_order_info` ADD  `full_name` VARCHAR( 10 ) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL ,
ADD  `card_num` VARCHAR( 255 ) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL ,
ADD  `idimg_one` VARCHAR( 255 ) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL ,
ADD  `idimg_two` VARCHAR( 255 ) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL

五、找到themes/default/flow_checkout.dwt模板文件
查找以下代码:
<section class="ect-margin-tb ect-padding-lr checkout-select" id="accordion"> 
        <!--{if $total.real_goods_count neq 0}-->

在这段代码上面添加以下代码:
 <a href="{:url('flow/identity_info')}" style="font-size:1.2em;font-weight: 700;">
      <section class="ect-margin-tb ect-padding-lr ect-padding-tb checkout-add" style="line-height:2rem;margin-bottom: -1rem;">
        <div style="margin-left: -0.4rem;">身份信息<span class="label ect-bg-colory"style="margin-left: 0.9em;
    vertical-align: 0.2em;
    padding: 0.3em 0.3em;">{$lang.require_field}</span></div>
        <i class="fa fa-angle-right" style="font-size: 1.8em;"></i>
      </section>
      </a>

查找以下代码:
<input type="submit" name="submit" value="{$lang.order_submit}" class="btn btn-info ect-btn-info ect-colorf ect-bg"/>

用以下代码替换:
 <input type="submit" name="submit" value="{$lang.order_submit}" class="btn btn-info ect-btn-info ect-colorf ect-bg" onclick="return yzxinx()"/>
        <input type="hidden" id="pdygd" name="pdygd" value="{$pdygd}" />
在页面拉到最后面,在最下面添加
function yzxinx()
{
    var pdygd = $('#pdygd').val();
    if(pdygd == 0)
    {
      alert("请输入身份信息,并提交您的信息");location.href="{:url('flow/identity_info')}";  
            return  false;  
    }
  }
</script>








六、打开/include/apps/default/controller/FlowController.class.php 文件

查找以下代码:
//  检查用户是否已经登录 如果用户已经登录了则检查是否有默认的收货地址 如果没有登录则跳转到登录和注册页面

在这段代码上面添加以下代码:
/* 
        *身份信息
        *判断用户身份是否有数据,有传值1,没有传值0
        */
        $oks=1;
        $nos=0;
        $where['user_id'] = $_SESSION['user_id'];
        $result = $this->model->table('users')->field('full_name, card_num, idimg_one, idimg_two')
                ->where($where)->find();
        if(empty($result['idimg_two']) && empty($result['idimg_one'])){
            $this->assign('pdygd',$nos);
        }
        else{
            $this->assign('pdygd',$oks);
        }
        /*身份信息*/
查找以下代码:
 /* 对是否允许修改购物车赋值 */

在这段代码上面添加以下代码:
/*获取用户身份信息*/
        $user_list = $this->model->table('users')->where('user_id = '.$_SESSION['user_id'])->find();
        $this->assign('profile',$user_list);

七、
打开/include/apps/default/controller/FlowController.class.phh
(若有MY_FlowController.class.php就在MY_Flow....) 文件
查找以下代码:
// 订单信息

在这段代码上面添加以下代码:
//获取身份信息
        $where['user_id'] = $_SESSION['user_id'];
        $res = $this->model->table('users')->field('full_name, card_num, idimg_one, idimg_two')->where($where)->find();

查找以下代码:
$order = array(

在这段代码下面添加以下代码:
'full_name'       => $res['full_name'],
            'card_num'       => $res['card_num'],
            'idimg_one'       => $res['idimg_one'],
            'idimg_two'       => $res['idimg_two'],

把下面的两个方法放到flow控制机的最下面
/**实名认证**/
    public function identity_info()
    {  
        if(IS_POST)
        {
            /* 身份证验证*/
            $full_name = I('post.full_name');
            $card_num = I('post.card_num');         
            //只更新姓名或者身份证号 
            if($_FILES['idimg_one']['size'] == 0 && $_FILES['idimg_two']['size'] == 0){
               $data = array(
                    'full_name' => $full_name,
                    'card_num' => $card_num
                );
                $this->model->table('users')->data($data)->where('user_id = '.$_SESSION['user_id'])->update();
                ecs_header("Location: " . url('flow/checkout') . "\n");
                exit; 
            }
                
            // 如果上传了其中一张图片
            if($_FILES['idimg_one']['size'] == 0 || $_FILES['idimg_two']['size'] == 0){
                show_message('请同时上传身份证的正反面', '', '');
                exit; 
            }

            // 用户如果上传了2张图片
            if($_FILES['idimg_one']['size'] != 0 && $_FILES['idimg_two']['size'] != 0){
                 /* 图片处理 */
                $image = new EcsImage($_CFG['bgcolor']);
                 if (!$image->check_img_type($_FILES['idimg_one']['type']) || !$image->check_img_type($_FILES['idimg_two']['type']))
                 {
                     show_message("图片格式不正确!");
                 }
                 
                 //检查是否存在上传的身份证图片,如果有则删除
                 $user_id = $_SESSION['user_id'];
                 $sql = 'select idimg_one,idimg_two from ' . $this->model->pre . "users where user_id ='$user_id'";
                 $card_img = $this->model->getRow($sql);                 
                 if($card_img['idimg_one'] != '' || $card_img['idimg_two'] != '' )
                    {   
                      //echo $card_img['idimg_one'];
                       @unlink('../'.$card_img['idimg_one']);               
                       @unlink('../'.$card_img['idimg_two']);
                    }
                    
                 //生成随机文件名       
                $img_name2 = date("Ymd-His") .'.'. end(explode('.', $_FILES['idimg_two']['name']));
                $target2 = __ROOT__ . '/' .DATA_DIR . '/idimg_two/';
                $original_img2 = $image->upload_image($_FILES['idimg_two'], 'idimg_two', $img_name2); // 原始图片
                $idimg_two = $image->make_thumb($original_img2, '', '', $target2);
                if ($idimg_two === false)
                {
                    show_message("图片保存出错!");
                }
                $img_name1 = date("Ymd-His") .'.'. end(explode('.', $_FILES['idimg_one']['name'])); 
                $target1 = __ROOT__ . '/' .DATA_DIR . '/idimg_one/';
                $original_img1 = $image->upload_image($_FILES['idimg_one'], 'idimg_one', $img_name1); // 原始图片
                $idimg_one = $image->make_thumb($original_img1, '', '', $target1);
                if ($idimg_one === false)
                {
                    show_message("图片保存出错!");
                }
                /* 需要增加判断,根据数据库中信息是否存在执行insert还是update */
                $res_s = $this->model->table('users')->where('user_id = '.$_SESSION['user_id'])->find();
                if(empty($res_s)){/* 用户信息不存在,则执行插入操作 */
                    $data = array(
                        'full_name' => $full_name,
                        'card_num' => $card_num,
                        'idimg_one' => $target1.$img_name1,
                        'idimg_two' => $target2.$img_name2
                    );
                $this->model->table('users')->data($data)->where('user_id = '.$_SESSION['user_id'])->insert();          
                ecs_header("Location: " . url('flow/checkout') . "\n");
                exit;
                }else{/* 用户信息存在,则执行更新操作 */
                    $data = array(
                        'full_name' => $full_name,
                        'card_num' => $card_num,
                        'idimg_one' => $target1.$img_name1,
                        'idimg_two' => $target2.$img_name2
                    );
                $this->model->table('users')->data($data)->where('user_id = '.$_SESSION['user_id'])->update();
                ecs_header("Location: " . url('flow/checkout') . "\n");
                exit;   
                }
            }
            /* 身份证验证*/
            // 用户资料
            
        
        }
        $user_id=$_SESSION['user_id'];

        $user_info = model('Users')->get_profile($user_id);
        
        $this->assign('profile', $user_info);
        $this->display('flow_identity_info.dwt');
    }
    /**实名认证**/
    public function identity_in()
    {  
        if(IS_POST)
        {
            /* 身份证验证*/
            $full_name = I('post.full_name');
            $card_num = I('post.card_num');         
            //只更新姓名或者身份证号 
            if($_FILES['idimg_one']['size'] == 0 && $_FILES['idimg_two']['size'] == 0){
               $data = array(
                    'full_name' => $full_name,
                    'card_num' => $card_num
                );
                $this->model->table('users')->data($data)->where('user_id = '.$_SESSION['user_id'])->update();
                show_message('更新用户信息成功', '', '');
                exit; 
            }
                
            // 如果上传了其中一张图片
            if($_FILES['idimg_one']['size'] == 0 || $_FILES['idimg_two']['size'] == 0){
                show_message('请同时上传身份证的正反面', '', '');
                exit; 
            }

            // 用户如果上传了2张图片
            if($_FILES['idimg_one']['size'] != 0 && $_FILES['idimg_two']['size'] != 0){
                 /* 图片处理 */
                $image = new EcsImage($_CFG['bgcolor']);
                 if (!$image->check_img_type($_FILES['idimg_one']['type']) || !$image->check_img_type($_FILES['idimg_two']['type']))
                 {
                     show_message("图片格式不正确!");
                 }
                 
                 //检查是否存在上传的身份证图片,如果有则删除
                 $user_id = $_SESSION['user_id'];
                 $sql = 'select idimg_one,idimg_two from ' . $this->model->pre . "users where user_id ='$user_id'";
                 $card_img = $this->model->getRow($sql);                 
                 if($card_img['idimg_one'] != '' || $card_img['idimg_two'] != '' )
                    {   
                      //echo $card_img['idimg_one'];
                       @unlink('../'.$card_img['idimg_one']);               
                       @unlink('../'.$card_img['idimg_two']);
                    }
                    
                 //生成随机文件名       
                $img_name2 = date("Ymd-His") .'.'. end(explode('.', $_FILES['idimg_two']['name']));
                $target2 = __ROOT__ . '/' .DATA_DIR . '/idimg_two/';
                $original_img2 = $image->upload_image($_FILES['idimg_two'], 'idimg_two', $img_name2); // 原始图片
                $idimg_two = $image->make_thumb($original_img2, '', '', $target2);
                if ($idimg_two === false)
                {
                    show_message("图片保存出错!");
                }
                $img_name1 = date("Ymd-His") .'.'. end(explode('.', $_FILES['idimg_one']['name'])); 
                $target1 = __ROOT__ . '/' .DATA_DIR . '/idimg_one/';
                $original_img1 = $image->upload_image($_FILES['idimg_one'], 'idimg_one', $img_name1); // 原始图片
                $idimg_one = $image->make_thumb($original_img1, '', '', $target1);
                if ($idimg_one === false)
                {
                    show_message("图片保存出错!");
                }
                /* 需要增加判断,根据数据库中信息是否存在执行insert还是update */
                $res_s = $this->model->table('users')->where('user_id = '.$_SESSION['user_id'])->find();
                if(empty($res_s)){/* 用户信息不存在,则执行插入操作 */
                    $data = array(
                        'full_name' => $full_name,
                        'card_num' => $card_num,
                        'idimg_one' => $target1.$img_name1,
                        'idimg_two' => $target2.$img_name2
                    );
                $this->model->table('users')->data($data)->where('user_id = '.$_SESSION['user_id'])->insert();          
                show_message('更新用户信息成功', '', '');
                exit;
                }else{/* 用户信息存在,则执行更新操作 */
                    $data = array(
                        'full_name' => $full_name,
                        'card_num' => $card_num,
                        'idimg_one' => $target1.$img_name1,
                        'idimg_two' => $target2.$img_name2
                    );
                $this->model->table('users')->data($data)->where('user_id = '.$_SESSION['user_id'])->update();
                show_message('更新用户信息成功', '', '');
                exit;   
                }
            }
            /* 身份证验证*/
            // 用户资料
            
        
        }
        $user_id=$_SESSION['user_id'];

        $user_info = model('Users')->get_profile($user_id);
        
        $this->assign('profile', $user_info);
        $this->display('flow_identity_in.dwt');
    }
七 找到  根目录/admin/templates/order_info.htm
搜索:
<td>{$order.card_num|escape}</td>
  </tr>
在上面的代码下面添加
<!-- {if $order.idimg_one } -->
  <tr>
    <td><div align="right"><strong>身份正面:</strong></div></td>
    <td>
      <li style="  padding: 0; height: 8rem; line-height: 7.7rem; list-style:none;">
       <img style="width:13rem; height:8rem" src="{$order.idimg_one}">
      </li>
    </td>
    <td><div align="right"><strong>身份反面:</strong></div></td>
    <td>
      <li style="  padding: 0; height: 8rem; line-height: 7.7rem; list-style:none;">
       <img style="width:13rem; height:8rem" src="{$order.idimg_two}">
      </li>
    </td>
  </tr>
  <!-- {/if} -->

 

posted @ 2016-08-23 19:35  十二分努力  阅读(6735)  评论(0编辑  收藏  举报