php后台校验数据,前端与后端TP的数据校验

前后端数据验证的区别

前端数据验证(一般指的是表单验证):为了提升用户体验,减少与后端的交互;但容易被他人修改或删除,甚至用其他抓包软件跳过验证直接向后端发送数据,安全性低。

后端数据验证:为了保证数据的正确性,不容易被他人修改,安全性高,所以即使没有前端验证,也必须要有后端验证。(必须的)

前端验证

自己通过JS手动实现

TP的后端数据验证——自动验证

TP已经实现了对请求数据进行验证的功能,自动验证是TP模型层提供的一种数据验证方法

自动验证的使用

1、在模型层中定义验证规则

protected $_validate = array(

array('username', 'require', '用户名不能为空'),

array('username', '/^\w{4,12}$/', '用户名或密码错误', self::EXISTS_VALIDATE, 'regex'),

array('password', 'require', '密码不能为空'),

array('password', '/^[a-zA-Z0-9]{6,18}$/', '用户名或密码错误', self::EXISTS_VALIDATE, 'regex'),

array('repassword', 'password', '用户名或密码错误', self::EXISTS_VALIDATE, 'confirm'),

array('email', 'email', 'Email格式不正确!'),

array('hobby', '1,2,3', '请选择一项爱好!',self::EXISTS_VALIDATE, 'in'),

);

2、使用create()方法创建数据对象,使用这个数据对象与数据库通讯

$postData = $this->create($postData);

//如果$postData为false,说明验证不通过,请调用$this->getError()获取错误信息

//如果验证通过,$postData就是一个原本的数组

PHP中复选框、单选框、下拉列表的注意事项

复选框

checkbox选中了的才会有值;未选中的则没有值(根本请求不会发出checkbox的name)

全选:

$_POST['chk']为array(0=>'0',1=>'1',2=>'2',3=>'3');

只选择value=1和3的

$_POST['chk']为array(1=>'1',3=>'3');

注意:在给checkBox命名时,必须要加"[]" ,但是在接收时不能加"[]" 才能得到值!

单选框

radio选中了的才会有值;未选中的则没有值(根本请求不会发出radio的name)

类型1

类型2

类型3

类型4

类型5

注意:每个radio的name值必须相同,获取时$_POST['catetype']

下拉列表

--请选择--

内容项二

内容项三

内容项四

注意:第一个“请选择”的value一定要写,否则默认值就是'--请选择--'

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值