我怎么能得到以下代码来打印出aaa.bbb.ccc? 目前,我得到的是每个eval()行的解析错误。 这是一个抽象代码版本。最后,我希望用户能够选择要搜索的数据库表的字段。像是组合的东西 if(strpos(" $ field1。$ field2。$ field3",$ search)!== false)...
$filter = "\$x=\$a.\$b.\$c";
$a = "a";
$b = "a";
$c = "a";
eval($filter);
echo $x.",";
$a = "b";
$b = "b";
$c = "b";
eval($filter);
echo $x.",";
$a = "c";
$b = "c";
$c = "c";
eval($filter);
echo $x;
答案 0 :(得分:1)
要修复当前代码,请更改以下内容:
$filter = "\$x=\$a.\$b.\$c";
要
$filter = '$x=$a.$b.$c;';
但是在用户输入上使用eval()
是代码中的一个很大的安全漏洞。尝试一些不同的方法,例如使用正则表达式和$search
函数检查preg_match_all()
中是否存在输入。