2009年8月19日星期三

[PerlChina] Re: 请教一个关于Data::FormValidator的问题

hehe, 是的。
return 0 就是被认为是untaint后的结果。
所以总是不work.
因此这里也总是不理解untaint_all_constraints到底是怎么work的。

您刚才说是在constraint通过后,再根据untaint_all_constraints这个选项untaint.这个返回后的值。
好像是这个样子。看起来,我也没必要使用这个选项。
或者真的有需要的话,使用untaint_constraints_field这个选项。


;)

Mike.G



2009/8/20 Qiang (James) <shijialee@gmail.com>
Mike.G wrote:
> 谢谢Qiang, 发现是加入了untaint_all_constraints=>1, 这个选项使得自定义的
> 函数总是没有办法检查出这个字段是否是valid
>
> 关于这个选项的文档也很少。
> 我猜测是不是应该在自定义的函数里要使用这样的语句untaint
>

根据文档,untaint_all_constraints 会在你的 constraint 通过后根据你的
constraint 来 untaint.

如果你想返回 false, 请使用 return; (相当于 return undef)即可。没准你上面
的 return 0 被认为是 untaint 后的结果也不一定....

> my $val = shift;
> $val =~ /(.*)/
> $val = $1;
>

oh, 这些地方我不用 untaint,既然通过 constraint,那我已经信任提交的结果,
没必要再 untaint 一遍。

>
> 谢谢 Qiang
>
>
> Mike.G

Qiang


>
>
> 2009/8/19 Qiang (James) <shijialee@gmail.com <mailto:shijialee@gmail.com>>
>
>     Mike.G wrote:
>      > Hi, Qiang.
>      > 第一个种情况,我试过一次好像两个都显示。这个我回去再试一下。
>      >
>
>     你可以把 CGI::Application::Plugin::ValidateRM 的结果
>     ($result=$self->check_rm...) 用 Data::Dumper 打出来看。另外通过 invalid
>     也可以。
>
>      > 第二个,返回false, 我记得perl里没有这种类型的啊。我返回0,就是不显示。
>      > 我超级郁闷。
>
>     undef, 0 都是 false..
>
>     看看 Dumper 出来的结果是否有检验错误信息。 如果你说的是没有在网页里显
>     示,那这一般是在 template 里控制、
>
>     Qiang
>
>
>
>
> >





--~--~---------~--~----~------------~-------~--~----~
您收到此信息是由于您订阅了 Google 论坛"PerlChina Mongers 讨论组"论坛。
 要在此论坛发帖,请发电子邮件到 perlchina@googlegroups.com
 要退订此论坛,请发邮件至 perlchina+unsubscribe@googlegroups.com
 更多选项,请通过 http://groups.google.com/group/perlchina?hl=zh-CN 访问该论坛

-~----------~----~----~----~------~----~------~--~---

没有评论: