2017-06-27 18 views
0

私は動的に異なるフォームを構築します。私は現在のフォームIDに関連するすべてのフィールドを取得するデータベースを照会します。 (私は2つのテーブル、1つはフィールドのリストと1つの製品に関連付けられているフィールドのリストを持っている)。私は結合を行い、私はフォームを構築するためにすべての情報を得ることができます。動的に構築されたフォームからデータを取得する方法は?

正常に動作します。

私の質問は、$_POSTで送信されたデータの処理に関連しています。私はすべてのフィールドを知っているとき通常、私はこのようなデータを取得する:

$nom = htmlentities($_POST['nom']); 
$prenom = $_POST['prenom']; 

私は別の名前で300のフィールドすべてを持っているので、私はそれを行うことはできません。 名前フィールドを知らなくてもPHPですべてのポスト値を取得できますか?

+1

フォーム要素の内容に応じて '!empty()/ isset()'メソッドとともに 'foreach'を使うことができます。 –

+1

'htmlentities()' btwは、目的を表示するためのものです。 –

+0

@ Fred-iops 'htmlentities() 'は何もしません。 'foreach'solutionで答えを投稿できますか?私はそれに投票することができました。 –

答えて

3

PHPには、extractと呼ばれる機能がありますが、ユーザーが期待していないキーをユーザーが送信できるため、ユーザーデータに使用することはお勧めできません。

同じことを達成するために、あなたはまた、ループを使用することができます。

foreach($array as $key => $value) { 
    $$key = $value; 
} 

セキュリティ上の問題はしかし同じです。

+0

セキュリティをどのように改善できますか? –

+0

Extractは接頭辞を使用してサポートしています(したがって、すべての変数は '$ prefix_key'のようになります)が、あなたのユースケースでは機能しないかもしれません。あらかじめ定義されたキーのリストが役立ちますが、それがあれば、リスト内のキーをループすることもできます(フォームを生成するのと同じリストをループするなど)。 – mvuajua

+0

@SébastienGicquelこれは別の質問/問題です。 –

関連する問題