今天学了一个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']);
登陆后获取的值。
网友评论