对数据库中的代码使用 php eval



我正在尝试根据Mysql数据库中的信息自动生成表单。 现在,一个表存储有关所需字段的信息 - 字段类型、最大长度、默认值等。

第二个表包含html/php代码,用于基于从前面提到的表中检索的信息显示正确的表单输入。这两个表都不包含任何用户输入的数据。为了处理和显示这些存储的代码,我一直在尝试使用 php 的 eval 函数。虽然我不确定这是一个很好的解决方案,但我能想到的唯一选择是使用php的include或使用jquery附加内容来检索数十个一行或两行文件。我不想这样做的主要原因是避免拥有数十个额外的文件。

这是我到目前为止的评估声明

eval("$code="$field[input_code]";");echo"<td>$code</td>";

以下是 $field['input_code'] 的内容之一的示例

<input name='".$field['form_name']."'type='text'placeholder='".ucwords(str_replace('_',' ',$field['form_name']))."'".if($field['req']==1){echo"class='textvalreq'required";}else{echo"class='textval'";}.">

如果$field['input_code']包含表达式,

eval("$code="$field[input_code]";");

不会像 PHP 尝试做 sth 那样工作,比如:

$code = "if (<condition>) { ... }";

这最终会成为一个有效的字符串,但如果变量包含引号,那么所有地狱都会松动。

对不起。除了不在数据库中存储任意代码并尝试eval()它之外,我没有看到解决问题的微不足道的解决方案。

顺便说一句:eval()是邪恶的。

最新更新