用户
 找回密码
 入住 CI 中国社区
搜索
查看: 3377|回复: 8
收起左侧

表单验证问题

[复制链接]
发表于 2009-3-27 10:16:30 | 显示全部楼层 |阅读模式
form_validation->set_rules(),这个方法中.最后一个参数可以加'tirm|required|md5',等等一些PHP的处理函数.
我现在有个疑惑,
例如:
HTML复制代码
 
<input name="password" type="password" />
 
复制代码
PHP复制代码
 
$this->form_validation->set_rules('password', '密码', 'trim|required|md5');
 
复制代码

我的密码这样检测,
但是获取的input值得是用 $this->input->post()来获取。但其中的md5并没有获取过来,我有点晕,请问为什么。
发表于 2009-3-27 11:20:10 | 显示全部楼层
md5 过以后就不是明文了呀,变成 md5 以后的密文了。
 楼主| 发表于 2009-3-27 11:32:06 | 显示全部楼层
本帖最后由 yuwen002 于 2009-3-27 20:59 编辑
HTML复制代码
 
<?php echo form_open('admin/adminhome'); ?>
<input type="password" name="password"
                          value="<?php echo set_value('password');?>" />
<?php echo form_close(); ?>
 
复制代码
PHP复制代码
 
$this->form_validation->set_rules('password', '密码', 'trim|required|md5');
echo $this->input->post('password');
 
复制代码


我在视图上输入的123456
结果打出来的还是123456请问这是为什么呢?
那不是验证没有用了嘛。
是不是。我的在使用input->post()的时候还要再md5一次。
 楼主| 发表于 2009-3-27 13:42:24 | 显示全部楼层
再补一下次吧。没人回答了。
发表于 2009-3-27 13:44:26 | 显示全部楼层
应该是不需要了呀,如果得到的确实是明文,那就再 md5 一次吧,呵呵
 楼主| 发表于 2009-3-27 14:08:07 | 显示全部楼层
我现在的情况是set_value()里是md5的东西。
但在input->post()中还是没办法得到加密后的数据。
请问没有办法直接得到set_value里的值吗?
发表于 2009-3-27 16:16:51 | 显示全部楼层
6# yuwen002 <<professional codeigniter>>里面提到了一个处理加密的方法:

function db_clean($string,$size=255){
return xss_clean(substr($string,0,$size));
}

这个可以
发表于 2009-3-27 17:28:45 | 显示全部楼层
在 post() 得到结果后再 md5 一下不行吗?
这个新版的表单验证类我还没使用过,老版本的是会自动 md5 的。
 楼主| 发表于 2009-3-27 21:00:34 | 显示全部楼层
嗯。那现在只能用这个办法了。不过还是谢谢各位的解答。
CI继续努力中。

本版积分规则