-1

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

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

这是我到目前为止的 eval 语句

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'";}.">
4

1 回答 1

1

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

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

将无法工作,因为 php 会尝试做某事。喜欢:

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

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

对不起。除了不将任意代码存储在数据库中并尝试使用之外,我没有看到解决该问题的简单方法eval()

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

于 2012-11-07T21:19:17.203 回答