$ _POST变量名是变量,如何检索?

Users of my website can generate a custom form. All the fields are saved in a database with a unique ID. When someone visits the form, the fields 'name' attribute is field*ID*, for example

<p>Your favorite band? <input type="text" name="field28"></p>
<p>Your Favorite color? <input type="text" name="field30"></p>

After submitting the form, I use php to validate the form, but I don't know retrieve the value of $_POST[field28] (or whatever number the field has).

<?
while($field = $query_formfields->fetch(PDO::FETCH_ASSOC))
 {
 $id = $field[id];

 //this doesn't work!!
 $user_input = $_POST[field$id];

 //validation comes here
 }
?>

If anybody can help me out, it's really appreciated!

Add some quotes:

$user_input = $_POST["field$id"];

I'd suggest taking advantage of PHP's array syntax for forms:

<input type="text' name="field[28]" />

You can access this in php with $_GET['field'][28]

$user_input = $_POST['field'.$id];

Remember that you are using a string for the first part of the input name, so try something like: $user_input=$_POST['field'.$id];. Also, I would suggest calling them into an array to retrieve all data:

<?php
    $user_inputs=array();
    while($field=$query_formfields->fetch(PDO::FETCH_ASSOC)) {
        $id=$field['id'];
        $user_inputs[]=$_POST['field'.$id];
    }
?>