I was making a form that is um… quite large and all inputs consist of the form looking like
<input type="text" id="first_name" name="first_name" />
so instead of having to do
$first_name = $_POST['first_name'];
and so on for every input, is there a way to grab every ‘name’ or ‘id’ from each input within the <form></form> and apply to a variable of the same value of the ‘name’ or ‘id’.
I was thinking of something like a foreach statement??
Any ideas?
EDIT:
Given this little snippet of code here, how can it be use to now use the example given below?
function filter($data) {
$data = trim(htmlentities(strip_tags($data)));
if (get_magic_quotes_gpc())
$data = stripslashes($data);
$data = mysql_real_escape_string($data);
return $data;
}
foreach($_POST as $key => $value) {
$data[$key] = filter($value);
echo $value . '<br />';
}
Such a variable assignment is very bad idea. A malicious user can rewrite any variable in your program this way.
Never do such things.
You are right about foreach statement. But do not use it for setting variables – just use it to accomplish your script goal. Iterate $_POST and put it’s values into query or mail body or whatever. No need for global scope variables
As I have said above, use
foreachfor the real automation.You can use this function to produce a
SETSQL statement out of array of field names and $_POST array: