表单验证
表单验证是为了防止访问者跳过客户端验证而造成的系统安全问题,一但非法用户绕过客户端验证而服务器端没有加以验证,这样就是很不安全了,所以项目必须要进行服务器端表单验证。
Laravel 提供了多种不同的验证方法来对应用程序传入的数据进行验证。
常用基本规则
规则名 | 说明 |
---|---|
required | 不能为空 |
max:value | 字段值必须小于或等于value,对于字符串来说,value 为字符数 |
min:value | 字段值必须大于或等于value,对于字符串来说,value 为字符数 |
验证邮箱是否合法 | |
url | 验证字段必需是有效的 URL 格式 |
confirmed | 验证两个字段是否相同,如果验证的字段是password,则必须输入一个与之匹配的password_confirmation字段 |
integer | 验证字段必须是整型 |
ip | 验证字段必须是IP地址 |
numeric | 验证字段必须是数值 |
size:value | value 验证字段必须有和给定值value想匹配的尺寸,对字符串而言,value是相应的字符数目,对数值而言,value是给定整型值;对文件而言,value是相应的文件字节数 |
string | 验证字段必须是字符串 |
unique | 表名,字段,需要排除的ID |
between:min,max | 验证字段值的大小是否介于指定的 min 和 max 之间。字符串、数值或是文件大小的计算方式和 size 规则相同 |
regex:pattern | 验证字段值是否符合指定的正则表达式 |
注:多个验证规则可以通过 “|” 字符进行隔开
代码实现:
//表单验证
public function addv(Request $request){
//是否是Post提交
if($request->isMethod('post')){
$this->validate($request,[
//表单名称,规则,多个规则用中竖线|隔开
'username'=>'required|max:10|min:2',
'email'=>'required|email',
'pwd'=>'required|confirmed',
'pwd_confirmation'=>'required'
],[
'username.required'=>'用户名不能为空',
'username.max'=>'用户名不能超过3个字符',
'username.min'=>'用户名不能少于2个字符',
'email.required'=>'邮箱不能为空',
'email.email'=>'邮箱不合法',
'pwd.required'=>'密码不能为空',
'pwd.confirmed'=>'两次密码不一致',
'pwd_confirmation.required'=>'确认密码不能为空',
]);
dd($request->all());
}
else{
return view('db.addv');
}
}