次のようなさまざまなフォームで機能する送信コードが欲しいのですが。
<?php
$type = $_GET['type'];
if(isset($_SESSION['id']))
handle_form();
else
include 'form_'.$type.'.php'; // different fields based upon type
?>
したがって、すべてのキーと値をデータベースに書き込むスーパーグローバル$_POSTをループするのが賢明かどうか疑問に思いました。何かのようなもの:
<?php
function handle_form() {
$query = "";
foreach($_POST as $key => $value) {
$query .= mysql_real_escape_string($key)."='".mysql_real_escape_string($value)."' AND ";
}
mysql_query("UPDATE ".$_POST['type']." SET ".substr($query,0,-4)."WHERE `id` = $_SESSION['id']");
}
?>
または、これはフォームを処理するための非常に安全でないアプローチであり、対応する「form_type.php」のすべてのフィールドをハードコーディングする方がよいでしょうか。