通过HTML表单发送PHP if语句

时间:2017-01-25 16:02:19

标签: php html

尝试允许管理控制面板的用户从HTML表单运行PHP if语句。

由于控制面板集成了第三方软件,我们只有一种方法可以选择数据 - 使用PHP变量。

将通过表单

发送的if语句示例
$contact_details['Contacted'] == "Yes"

用户将拥有一个界面,该界面将使用完整的if语句填充HTML输入字段,例如

$contact_details['Contacted'] == "Yes" && $contact_details['Country'] == "UK"

但是,在发布表单时,if语句不会正确过滤结果。

echo $_POST["ifstatement"]."<br>"; //Show statement run - Remove when if works
if($_POST["ifstatement"]){ echo "Contact ID: ". $contact_details['id'] ." - Contact location: ". $contact_details['Country'] ." - "." Contacted?: ".  $contact_details['Contacted']."<br>"

它显示应该运行的语句,但是它不运行查询。

有什么方法可以让它发挥作用,还是我必须以另一种方式做到这一点?

1 个答案:

答案 0 :(得分:2)

您的If-Statement未被评估。您必须使用eval()来评估它。请不要盲目地复制这个例子:

<?php
$foo = '$result = ' . $_POST["ifstatement"] . ';';
eval($foo);
if ($result) {
    // ...
}
?>

但这是一个非常糟糕的Code Smell,如果你没有正确地清理输入,你就会创建一个巨大的remote code execution错误。

所以你应该重新考虑你的方法,因为会有一个更好,更安全的。