我正在自定义搜索表格。我有三个搜索参数: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"]) {
}
答案 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