【发布时间】:2010-11-24 14:22:17
【问题描述】:
我编写了一个不起作用的简单回调函数。我的其他回调(在同一个库文件中)工作正常,所以我猜这个问题与我的代码有关。
在回调函数中传递的参数采用 PHP 块的形式,该块被 eval()'ed 以形成函数本身中“if()”语句的一部分。
这是控制器中的内容:
$this->form_validation->set_rules('rating', 'Rating','required');
$condition = $this->input->post('rating') . " != 'Excellent'";
$this->form_validation->set_rules('details', 'Details', 'required_conditional[' . htmlentities($condition) .']');
这是回调函数本身:
function required_conditional($str, $condition)
{
if (eval(html_entity_decode($condition))) {
if ($str == '') {
$this->set_message('required_conditional', 'The %s field is required');
return FALSE;
}
else {
return TRUE;
}
}
}
任何想法为什么它对任何人都不起作用?
谢谢,马特
【问题讨论】:
-
介意发布一些 $condition 的例子吗?
-
见第一个代码sn -p的第二行。
标签: php codeigniter function validation callback