form表单提交

2019-05-02  本文已影响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']);
登陆后获取的值。
上一篇 下一篇

猜你喜欢

热点阅读