为什么thinkphp 自动验证不起作用?
迷茫
迷茫 2017-04-11 10:07:11
[PHP讨论组]

为什么thinkphp 自动验证不起作用
建立的zsh_order数据表,
首先OrderController

//过滤四张图片地址之间的空白符号
    public function filter($str){
        $str = str_replace(",",",",$str);
        $str = str_replace(array("\r\n","\n","\r",'"','"',','),"",$str);
        return $str;
    }


//基本信息填写
    public function add(){
        if(IS_POST){
            $order=D('order');
            $message['cname']=I('cname');
            $message['license']=I('license');
            $message['bankinfo']=I('bankinfo');
            $message['bankaccount']=I('bankaccount');
            $message['uname']=I('uname');
            $message['weixin']=I('weixin');
            $message['email']=I('email');
            $message['phone']=I('phone');
            $message['o_uid']=$_SESSION['uid'];
            $message['ctime']=time();


            if($_FILES['pic0']['tmp_name']!='' || 
               $_FILES['pic1']|| ['tmp_name']!=''||$_FILES['pic2']          
               ['tmp_name']!='' || $_FILES['pic3']['tmp_name']!=''){                
                $upload=new \Think\Upload();
                $upload->maxSize = 3145728;
                $upload->exts=array('jpg','gif','png','jpeg');
                $upload->savePath='./Public/Uploads/';
                $upload->rootPath='./';
                $info = $upload->upload();
                if(!$info){
                    $this->error($upload->getError());
                }else{
                    $res2 = array();
                    foreach($info as $k=>$v){
                    //$this->filter过滤
                        $data['pic']= $this->filter($v['savepath'].$v['savename']);
                        array_push($res2, $data);
                        
                    }
                    $message['pic0']=$res2[0]['pic'];
                    $message['pic1']=$res2[1]['pic'];
                    $message['pic2']=$res2[2]['pic'];
                    $message['pic3']=$res2[3]['pic'];


                }

                if($_POST['check']==''){

                    $this->error('您还没有勾选[以上信息我已阅读并确认]',U('order/index'));
                }else if($order->create($message)){
                    if($order->add()){
                    $this->success('添加数据成功',U('risk/index'));
                }else{
                    $this->error('添加数据失败!',U('order/index'));
                }
                }else{
                    $this->error($order->getError());
                }

                return;
            }
        }
    }

然后是Ordermodel的自动验证

最后是view页面

            <form class="bigbox" action="{:U('add','','')}" method="post" enctype="multipart/form-data">
                <p id="preview">
                    <img id="imghead" src="__PUBLIC__/Home/images/opc.png" width=161 height=161 border=0>
                </p>
                <p id="preview2">
                    <img id="imghead2" src="__PUBLIC__/Home/images/opc.png" width=161 height=161 border=0>
                </p>
                <p id="preview3">
                    <img id="imghead3" src="__PUBLIC__/Home/images/opc.png" width=161 height=161 border=0>
                </p>
                <p id="preview4">
                    <img id="imghead4" src="__PUBLIC__/Home/images/opc.png" width=161 height=161 border=0>
                </p>
                <input type="file" unselectable="on" value="选择文件" name="pic0" class="input_1" onchange="previewImage(this)"/>
                <input type="file" unselectable="on" value="选择文件" name="pic1" class="input_2" onchange="previewImage2(this)"/> 
                <input type="file" unselectable="on" value="选择文件" name="pic2" class="input_3" onchange="previewImage3(this)"/> 
                <input type="file" unselectable="on" value="选择文件" name="pic3" class="input_4" onchange="previewImage4(this)"/>  
                <span class="title1">公司资料</span>
                <p class="box1" style="z-index:10;">
                    <input type="text" class="input_top" style="padding-left:20px;width:348px;" id="js-cname" name="cname" onblur="checkCompName()">
                    <span class="span_1 compName">填写公司全称</span>
                    <p style="z-index:100000;">
                    <p class="select_file1" class="select_file">  
                        <a href="javascript:void(0);">上传公司营业执照</a> 
                    </p>
                    <p class="select_file2">  
                        <a href="javascript:void(0);">上传开户许可证</a>      
                    </p>
                    </p>
                    <input type="text" class="input2" style="padding-left:20px;width:348px;" name="license" onblur="checkIdcard()">
                    <span class="span_2 idcard">法人身份证号</span>
                    <p class="select_file3">  
                        <a href="javascript:void(0);">上传法人身份证正面</a>  
                    </p>
                    <p class="select_file4">  
                        <a href="javascript:void(0);">上传法人身份证反面</a>  
                    </p>
                    <p class="clearfloat"></p>
                </p>
                <span class="title2">出入金银行信息</span>
                <p class="box2">
                    <p class="">中国工商银行</p>
                    <span class="span_1">开户银行仅限工行</span>
                    <input type="text" placeholder="" class="input_bankInfo" style="padding-left:20px;width:348px;" name="bankinfo" onblur="checkbankInfo()">
                    <span class="bankInfo">支行信息</span>
                    <input type="text" placeholder="" class="input_bankAccount" style="padding-left:20px;width:348px;" name="bankaccount" onblur="checkbankAccount()">
                    <span class="bankAccount">银行账户</span>
                    <input type="text" placeholder="" style="padding-left:20px;width:348px;" name="uname" class="input_username" onblur="checkUserName()">
                    <span class="UserName">开户人姓名</span>
                </p>
                <span class="title3">技术信息</span>
                <p class="box3">
                    <input type="text" placeholder="" style="padding-left:20px;width:348px;" class="input_OfficialAccounts" name="weixin" onblur="checkOfficialAccounts()">
                    <span class="OfficialAccounts">公众号原始ID</span>
                    <input type="text" class="input_email" placeholder="" style="padding-left:20px;width:348px;"  name="email" onblur="checkEmail()">
                    <span class="userEmail">负责人邮箱</span>
                    <input type="text" class="input_phone" placeholder="" style="padding-left:20px;width:348px;"   name="phone" onblur="checkPhone()">
                    <span class="userPhone">负责人手机</span>
                </p>
                <input type="submit" value="下一步" class="next" id="js-btn">
                <input type="checkbox" class="check" name="check" value="1">
                <span class="check_span">以上信息确认无误</span>
            </form>
迷茫
迷茫

业精于勤,荒于嬉;行成于思,毁于随。

全部回复(2)
黄舟

1、控制器代码请贴全
2、这缩进逼死强迫症
现有的代码片段里可以看到的错误,不应该用M('order'),应该用D('order'),前者实例化的时model类,后者实例化的才是orderModel类

PHPz

楼上说的没错,自动验证,要用D函数,仔细看文档,可以先仿照文档上来

热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新 English
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号