美文网首页
form表单提交

form表单提交

作者: 蜗牛呀呀呀呀呀 | 来源:发表于2019-05-02 17:26 被阅读0次

    今天学了一个form表单的提交

    //html
    {extend name='./common/father'}
    {block name='one'}
    <form class="form-horizontal" action="{:url('post')}" method="POST">
    //{:url('post')} 这个url对应的为引入该html的控制器下的post方法
        <div class="form-group" style="margin-left:10%;margin-top: 2%">
    
            <label class="col-sm-2 control-label">用户名</label>
    
            <div class="col-sm-9 col-xs-12">
    
                <input type="text" name="username" class="form-control" value=""  placeholder="" >
    
            </div>
        </div>
        <div class="form-group" style="margin-left:10%;margin-top: 2%">
    
            <label class="col-sm-2 control-label">昵称</label>
    
            <div class="col-sm-9 col-xs-12">
    
                <input type="text" name="nickname"  class="form-control" value=""  placeholder="" >
    
            </div>
        </div>
        <div class="form-group" style="margin-left:10%;margin-top: 2%">
    
            <label class="col-sm-2 control-label">密码</label>
    
            <div class="col-sm-9 col-xs-12">
    
                <input type="text" name="password"  class="form-control" value=""  placeholder="" >
    
            </div>
        </div>
        <div class="form-group" style="margin-left:10%;margin-top: 2%">
    
            <label class="col-sm-2 control-label">确认密码</label>
    
            <div class="col-sm-9 col-xs-12">
    
                <input type="text" name="password_confirm"  class="form-control" value=""  placeholder="" >
    //password_confirm使用confrim方法。验证值和被验证值。如果a是XXX。则b要验证的命名方法为XXX.confrim。
            </div>
        </div>
    
        <input type="submit" class="btn btn-primary span3" name="submit" value="注册" style="margin-left: 45%">
    
    </form>
    {/block}
    

    php中的一些处理

    <?php
    namespace app\regiser\controller;
    use app\common\model\User;
    use think\Db; //使用数据库方法必须引入这个。注意:D要大写,b要小写
    //......
    use think\Controller;
    use think\Request;
    use think\Validate;//Validate方法验证类要引入。不引入可以使用其他的方法获取表单中的值。
    
    class Login extends Controller
    {
        public function login()
        {
            return  view();
        }
        public function post(Request $request){
        $post=$request->post();//获取post提交中的所有值。
    //    halt($post);
    //        halt($_POST['username']);
            //对post衍生
           $yz= Validate::make([
                'username'=>'require|min:3|max:15',
             'nickname'=>'require|min:3|max:15',
             'password'=>'require|min:3|max:15|confirm',
           ]);
    //验证的一些值,'password'=>'require|min:3|max:15|confirm',对应的上文html中的值。
    //含义,require:请求值;min最短为3,max最长为15.
           $status=$yz->check($post); //验证其中的值,$yz中的的定义规则是否满足定义的需求。满足为true不满足为false
    //       halt($status);
            if($status){
    //数据库方法能用的原因,use thinl\DbY引入了。
            db::table('user')->insert([
                'username'=>$post['username'],
                'nickname'=>$post['nickname'],
                'password'=>md5($post['password']),
            ]);
    //插入数据并对密码进行md5加密
            return $this->success('注册成功,请登录','/public');返回主页面。第一个参数提示文字,第二个参数返回的url
            }else{
    //            halt($yz->getError());
                return $this->error($yz->getError());//返回当前页面因为出错了。
            }
    }
    }
    

    中途的报错:
    //Call to undefined method app\regiser\controller\Login::success()
    原因 自己定义的类没有继承 控制器即,extends Controller。

    登录

      session('id',$status['id']);
      session('username',$status['username']);
    登陆后获取的值。
    

    相关文章

      网友评论

          本文标题:form表单提交

          本文链接:https://www.haomeiwen.com/subject/dhdiyqtx.html