Php 在这种情况下,我可以使用eval函数吗?
如何获得以下代码以打印出aaa.bbb.ccc?? 目前,我得到的只是每个eval()行的一个解析错误。 这是一个抽象代码版本。最后,我希望用户能够选择要搜索的数据库表的字段。类似于 如果(strpos(“$field1.$field2.$field3”,$search)!==false)Php 在这种情况下,我可以使用eval函数吗?,php,eval,Php,Eval,如何获得以下代码以打印出aaa.bbb.ccc?? 目前,我得到的只是每个eval()行的一个解析错误。 这是一个抽象代码版本。最后,我希望用户能够选择要搜索的数据库表的字段。类似于 如果(strpos(“$field1.$field2.$field3”,$search)!==false) 要修复当前代码,请更改以下内容: $filter = "\$x=\$a.\$b.\$c"; 到 但是在用户输入上使用eval()是代码中的一个大安全漏洞。尝试一些不同的方法,例如使用正则表达式和preg\u
要修复当前代码,请更改以下内容:
$filter = "\$x=\$a.\$b.\$c";
到
但是在用户输入上使用
eval()
是代码中的一个大安全漏洞。尝试一些不同的方法,例如使用正则表达式和preg\u match\u all()
函数检查\$search
中是否存在输入。为什么要使用\$x
?第二个-eval
是邪恶的。我发现了我的简单错误:我忘记了“;”$筛选器必须为“\$x=\$a.\$b.\$c;”;我必须转义$x,否则将使用$x的内容,它将不是eval()的表达式,为什么串联需要eval
<代码>$x=$a$b$c代码>
$filter = "\$x=\$a.\$b.\$c";
$filter = '$x=$a.$b.$c;';