效果展示:

       

代码 实现:

后台:

use Validator;

public function login()
{
if($input = Input::all()){
//验证提交的数据
$rules = [
'user_name'=>'required|between:4,20',
'user_pwd'=>'required|between:6,20',
'code'=>'required|between:4,4'
];
$message = [
'user_name.required'=>'账号不能为空!',
'user_name.between'=>'账号必须在6-20位之间!',
'user_pwd.required'=>'密码不能为空!',
'user_pwd.between'=>'密码必须在6-20位之间!',
'code.required'=>'验证码不能为空!',
'code.between'=>'验证码必须为4位!',
];
$validator = Validator::make($input,$rules,$message);
//表单验证
if($validator->passes()){
//验证验证码
if($_SESSION['code']!=strtoupper($input['code'])){
return back()->with('msg','验证码错误!');
}
//用户验证
$user = DB::table('user')->select ('user_id','user_encrypt','user_pwd')->where('user_name',$input['user_name'])- >first();
if(!$user){
return back()->with('msg','用户不存在!');
}else{
if(md5(md5($input['user_pwd']).$user->user_encrypt)!=$user- >user_pwd){
return back()->with('msg','密码错误!');
}
session(['user_id'=>$user->user_id]);
return redirect('index');
}
}else{
return back()->withErrors($validator);
}
}else{
return view('admin.login');
} }

前台:

<div class="middle-box text-center loginscreen  animated fadeInDown">
<div>
<div> <h1 class="logo-name">h</h1> </div>
<h3>欢迎使用 hAdmin</h3> <form class="m-t" role="form" action="{{URL('/login')}}" method="post">
@if(count($errors)>0)
@if(is_object($errors))
@foreach($errors->all() as $error)
<p style="color:red">{{$error}}</p>
@endforeach
@else
<p style="color:red">{{$errors}}</p>
@endif
@endif
@if(session('msg'))
<p style="color:red">{{session('msg')}}</p>
@endif
<div class="form-group">
<input type="email" class="form-control" placeholder="用户名" required="" name="email">
<input type="hidden" name="_token" value="<?php echo csrf_token(); ?>">
</div>
<div class="form-group">
<input type="password" class="form-control" placeholder="密码" required="" name="pwd">
</div>
<button type="submit" class="btn btn-primary block full-width m-b">登 录</button> <p class="text-muted text-center"> <a href="login.html#"><small>忘记密码了?</small></a> | <a href="{{URL('/register')}}">注册一个新账号</a>
</p> </form>
</div>
</div>

$validator->fails()  验证都符合规则返回false 不符合规则返回true

注:转自小白丶程序猿的博客

laravel表单验证的更多相关文章

  1. Laravel表单验证提示设置多语言

    默认表单提示是英文的,我们可以安装语言包构建多语言环境. 根据版本选择命令 For Laravel 7.x : run composer require caouecs/laravel-lang:~6 ...

  2. 社群系统 ThinkSNS+ 中如何利用 Laravel 表单验证来验证用户名的?(我朝独有需求,两个字母占一个汉字。。。)

    ThinkSNS+后端框架使用laravel,每周和 laravel master 保持同步,而后台和 html 5 则采用 vue 开发.语言特性方面,采用 php 7 的严格模式. 言归正传,之所 ...

  3. Laravel 表单验证创建“表单请求”实现自定义请求类

    按照文档创建表单请求自定义类以后,调用总是403页面,咨询大佬说: public function authorize() { // 在表单验证类的这个方法这里要返回true,默认返回false,这个 ...

  4. laravel 表单验证 Exists 规则的基本使用方法

    public function rules(){ return [ 'm_pushing_frequency_level_id' => 'integer|required|exists:m_pu ...

  5. laravel 表单验证 正则匹配

    判断url地址 是否为正确格式 控制器中 $this -> validate($request,[ 'linkname' => 'required|max:6|min:2', 'url' ...

  6. laravel 表单验证

    $this->validate($request, [ 'sn' =>['regex:/^\d{6}$/','required'], 'user' => ['numeric','mi ...

  7. Laravel教程 七:表单验证 Validation

    Laravel教程 七:表单验证 Validation 此文章为原创文章,未经同意,禁止转载. Laravel Form 终于要更新这个Laravel系列教程的第七篇了,期间去写了一点其他的东西. 就 ...

  8. 【干货】Laravel --Validate (表单验证) 使用实例

    前言 : Laravel 提供了多种方法来验证应用输入数据.默认情况下,Laravel 的控制器基类使用ValidatesRequests trait,该trait提供了便利的方法通过各种功能强大的验 ...

  9. 最适合入门的Laravel中级教程(三)表单验证

    做开发有个原则是永远不能信任用户输入的数据: 即便前端已经做了验证: 在后端 php 也必须要再次验证: laravel 为表单验证提供了强大且简单的方案: 创建示例路由: routes/web.ph ...

随机推荐

  1. HBase体系架构和集群安装

    大家好,今天分享的是HBase体系架构和HBase集群安装.承接上两篇文章<HBase简介>和<HBase数据模型>,点击回顾这2篇文章,有助于更好地理解本文. 一.HBase ...

  2. SVM算法简单应用

    第一部分:线性可分 通俗解释:可以用一条直线将两类分隔开来 一个简单的例子,直角坐标系中有三个点,A,B点为0类,C点为1类: from sklearn import svm # 三个点 x = [[ ...

  3. spring boot -thymeleaf-异常处理

    异常流程 :controller-ControllerAdvice-异常解析器-默认的error页面 1.错误页面error.html: 程序出现异常会自动跳到error.html里,视频效果,该页面 ...

  4. iReport 5.6.0 启动闪退的问题 解决方案

    问题描述 本人使用的Windows版本的 iReport 5.6.0,安装成功后,双击桌面上的iReport-5.6.0图标,出现了闪退,无法正常启动的现象.现象如下: 问题原因 iReport 5. ...

  5. SQL笔记之SELECT语句

    SELECT语句的完整语法: SELECT[ALL/DISTINCT]目标列表达式  [AS 别名],··· --ALL不去掉重复 DISTINCT去掉重复 FROM 表名或视图名 或者(SELECT ...

  6. tensorflow 1.0 学习:用CNN进行图像分类

    tensorflow升级到1.0之后,增加了一些高级模块: 如tf.layers, tf.metrics, 和tf.losses,使得代码稍微有些简化. 任务:花卉分类 版本:tensorflow 1 ...

  7. IdentityServer4(9)- 使用OpenID Connect添加用户身份验证(implicit)

    本文为 OpenID Connect 简化模式(implicit) 已更新至.NET Core 2.2 在本快速入门中,我们希望通过 OpenID Connect 协议向我们的 IdentitySer ...

  8. web认证

    前言: HTTP是无状态协议,之前已认证成功的用户状态无法通过协议层面保存下来.即无法实现状态管理,我们使用Cookie来管理Session(会话),以弥补HTTP协议中不存在的状态管理功能. 步骤: ...

  9. Linux常用命令之网络和关机重启命令

    目录 1.网络命令 一.给指定用户发送信息:write 二.给所有用户发送广播信息:wall 三.测试网络连通性:ping 四.查看和设置网卡信息:ifconfig 五.查看发送电子邮件:mail 六 ...

  10. zookeeper服务发现实战及原理--spring-cloud-zookeeper源码分析

    1.为什么要服务发现? 服务实例的网络位置都是动态分配的.由于扩展.失败和升级,服务实例会经常动态改变,因此,客户端代码需要使用更加复杂的服务发现机制. 2.常见的服务发现开源组件 etcd—用于共享 ...