gpt4 book ai didi

从 mysql 查询返回的 PHP eval() 代码*不工作*

转载 作者:行者123 更新时间:2023-11-29 14:41:57 26 4
gpt4 key购买 nike

如果我采取并做这样的事情:


$p = 10;
$n = 3;
$evalstr = "\$f = 0.99 + ((.025 * \$p) * \$n);";
eval($evalstr);
echo $f;

我显示1.74,没有错误,一切都很好,但是当我有一个保存这些方程的mysql表时(就本例而言,它是完全相同的方程)......就像这样:


$p = 10;
$n = 3;
while ($result = mysql_fetch_assoc($results)) {
$math = $result['math'];
//at this point $math = "\$f = 0.99 + ((.025 * \$p) * \$n);"
eval($math);
}

我收到解析错误:语法错误,意外的 T_VARIABLE,在 ajax\getprices.php(30) 中期待 T_STRING:第 1 行的 eval() 代码

不确定为什么,如果我打印 echo $math ,它是否与第一个示例中的 $evalstr 相同。 $p 和 $n 实际上是从 GET 变量设置的,但即使我像示例中那样手动设置它们,它也不起作用。

最佳答案

在我看来,您在数据库中存储了包含转义 $ 的表达式。如果可行的话,您可以尝试先删除斜杠:

eval(stripslashes($math));

我也建议非常小心地将此类代码存储在数据库中并使用eval来执行它。这里可能存在安全漏洞。但我想,你知道这一点。

关于从 mysql 查询返回的 PHP eval() 代码*不工作*,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7814653/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com