请求
浏览数 101930
YiluPHP框架自带一个input的辅助类 /helper/input.php,封装了获取请求参数和校验参数有校性的方法,使用方法也很简单,不需要引入也不需要配置,直接通过 $app 对象就可以调用,我们提到过$app是全局变量,所以如果在类和函数中,需要先使用 global 引用进来再使用,其它地方不需要应用就可以直接使用,比如controller和视图模板中就可以直接使用。
获取一个GET方法的参数 name 可以这样
第二个参数为默认值,可选项,当name参数不存在或者没有值时就返回默认值。
input类的其它方法如下
校验参数的validate方法
我们可以看到validate的第一个参数是必选的,第二和第三个参数是可选的,下面我们用一个例子来解说validate的用法
这个例子里接收校验了5个参数:
第一个参数 title 设置了6个校验规则,其中required表示这个参数必选,trim表示需要去除首尾空格,string表示按字符串规则校验这个参数,min:3表示这个参数最小长度为3个字(注意是字不是字符,一个汉字就是一个字),max:10表示这个参数最大长度为10个字,return表示校验完成后需要返回这个参数及其值给 $params 变量。
第二个参数 user_email 设置了3个校验规则,与第一个参数不一样的 email 表示这个参数的值需要按Email的规则校验其格式,这是一个可选参数,因为没有设置required参数,即可以不传这个参数,也可以参数的值为空字符串。
第三个参数 password1 是一个密码字符串,密码长度在6-20位字,这个参数的规则当中的 rsa_encrypt 表示这是一个需要使用RSA方法加密的参数,即前端使用RSA公钥加密后传给服务器,这里会先使用RSA私钥解密后再校验其它的规则,然后返回解密后的密码字符串给 $params 变量。
第四个参数 password2 也确认密码,因此它也需要加密传输,有 rsa_encrypt 规则,它需要与 password1 一致,因此给它设置了 equal:password1 的规则,两个密码一样,不需要返回这个参数,因此没有 return 规则。
第五个参数 status 为必选,规则 integer 表示它的值必须为整数,mix:0表示它的值最小为0,max:1表示它的值最大为1,需要返回这么参数给 $params 变量。
如果5个参数中任何一个参数校验失败就会报错,返回 validate 方法第二个中对应的错误信息和第三个参数中对应的错误码,validate 方法的第二和第三个参数为可选项,如果不传这两个参数则会有系统默认的错误码和错误信息。如果这5个参数校验都通过了,则会返回设置了return规则的参数及值给 $params 变量,是一个数组,格式形式如下:
下面列出所有可用的校验规则
required 这个参数是必选的
numeric 这个参数是数字类型
integer 这个参数是整数类型
string 这个参数是字符串类型
array 这个参数是数组类型
email 这个参数是Email
json 这个参数是JSON字符串
equal:{param_name} 这个参数需要与另一个参数{param_name}的值一致
rsa_encrypt 这个参数需要使用RSA方法加密,RSA的加密和设置方法在下文介绍
return 校验通过后返回这个参数及值
trim 这个参数需要去除首尾空格
min:{number} 如果是字符串表示允许最小的长度为{number},如果是数字表示允许最小的数值为{number}
max:{number} 如果是字符串表示允许最大的长度为{number},如果是数字表示允许最大的数值为{number}
如上面的举例,多个规则使用竖杆分隔。
RSA的设置和加解密方法
RSA是一种非对称加密算法,需要生成一对公钥和私钥,前端使用公钥加密字符串,服务器端使用私钥解密字符串,使用公钥是无法解密的,这就是非对称加密的优点。参数使用非对称加密可以防止数据在网络传输过程中被人拦截偷取,YiluPHP框架中自带一个RSA的加密示例,就是welcome页面中的提交 mobile参数的测试,也就是说框架中已经提供了一对公钥和私钥,存放路径是
私钥是不能对外公开的,因此你需要重新生成一对安全的公钥和私钥,然后把自带的文件替换掉,如果你重新生成的文件名不一样或存放路径也不一样,则需要修改配置信息 rsa_private_key 和 rsa_public_key,使配置与文件路径对应起来。生成公私钥的方法在框架中也有提供