我正在尝试根据Mysql数据库中的信息自动生成表单。现在,一个表存储有关所需字段的信息 - 字段类型,maxlength,默认值等。
第二个表包含用于显示正确表单输入的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'";}.">
答案 0 :(得分:1)
如果$field['input_code']
包含表达式,
eval("\$code=\"$field[input_code]\";");
将无法工作,因为PHP会尝试做某事。像:
$code = "if (<condition>) { ... }";
这最终会以有效字符串结尾,但如果变量包含引号,那么所有地狱都会破裂。
对不起除了不在数据库中存储任意代码并尝试eval()
之外,我没有看到解决问题的简单方法。
顺便说一下:eval()
是邪恶的。