hehe, 是的。 return 0 就是被认为是untaint后的结果。 所以总是不work. 因此这里也总是不理解untaint_all_constraints到底是怎么work的。
您刚才说是在constraint通过后,再根据untaint_all_constraints这个选项untaint.这个返回后的值。 好像是这个样子。看起来,我也没必要使用这个选项。 或者真的有需要的话,使用untaint_constraints_field这个选项。 ;) Mike.G 2009/8/20 Qiang (James) <[email protected]> > 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) <[email protected] <mailto:[email protected] > >> > > > > 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 讨论组”论坛。 要在此论坛发帖,请发电子邮件到 [email protected] 要退订此论坛,请发邮件至 [email protected] 更多选项,请通过 http://groups.google.com/group/perlchina?hl=zh-CN 访问该论坛 -~----------~----~----~----~------~----~------~--~---
