-1

Mysqlデータベースの情報に基づいてフォームを自動生成しようとしています。現在、1つのテーブルには、必要なフィールドに関する情報(フィールドタイプ、maxlength、デフォルト値など)が格納されています。

2番目のテーブルには、前述のテーブルから取得した情報に基づいて、適切なフォーム入力を表示するためのhtml/phpコードが含まれています。これらのテーブルには、ユーザーが入力したデータは含まれていません。この保存されたコードを処理して表示するために、私はphpのeval関数を使用しようとしています。これが良い解決策かどうかはわかりませんが、私が考えることができる唯一の選択肢は、phpのincludeを使用するか、jqueryを使用してコンテンツを追加することによって取得される1行または2行のファイルを数十個持つことでした。私がこれをやりたくない主な理由は、何十もの余分なファイルを持たないようにするためでした。

これが私がこれまでに持っている評価ステートメントです

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

$field['input_code']のコンテンツの1つのサンプルを次に示します。

<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がsthを実行しようとするため、機能しません。お気に入り:

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

これは最終的には有効な文字列になりますが、変数に引用符が含まれていると、すべての地獄が解き放たれます。

ごめんなさい。データベースに任意のコードを格納せずに実行しようとする以外に、問題の簡単な解決策は見当たりませんeval()

ところで:eval()悪です。

于 2012-11-07T21:19:17.203 に答える