评估解决方案

时间:2017-04-07 20:33:59

标签: php

我正在自定义搜索表格。我有三个搜索参数:from,to和status。我已根据收到的参数使用eval()来过滤结果。以下是我的代码:

$search = ($from != "" || $to != "" || $status != "" );



if ($search) {
    if ($from != '') {
        $condition[] = '$from ==  $res["from_number"]';
    }
    if ($to != '') {
        $condition[] = '$to ==  $res["to_number"]';
    }

    if ($status != '') {
        $condition[] = '$status == $log["status"]';
    }

    $search = "if(" . implode(' && ', $condition) . '){ return false; } else { return true; }';
}

获得我使用eval

的条件后
if (eval($search)) {

}

我的问题是我不想使用eval()。它可能会导致安全问题。梯子如果不可能,那将是非常漫长的。还有其他解决办法吗?

e.g。如果我已通过状态值,那么我想检查

if($status == $log["status"]) {
}

如果我已经转到&从数字那么它应该是:

if($from ==  $res["from_number"] && $to ==  $res["to_number"]) {
}

1 个答案:

答案 0 :(得分:1)

请勿使用function add_db_table_editor(){ if(function_exists('add_db_table_editor')){ add_db_table_editor('title=Employees&table=employees'); add_db_table_editor(array( 'title'=>'Test title', 'table'=>'wp_posts', 'sql'=>'SELECT * FROM event_registrations ORDER BY date_entered DESC')); } } - 这有潜在危险,不建议使用。

您的代码可以是这样的:

eval