我正在尝试根据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()
是邪恶的。