No entiendo lo del hidden, pero entiendo que dices que no use arrays, sea por la razón que sea pero no la dices.
¿Por qué dices que le doy un nombre y luego accedo con otro? Creo que eso no es cierto, el script deja bien claro que el nombre del elemento es el usado para acceder al array:
$name = 'address_book';
$$name = $_POST[$name];
foreach ($$name as $key => $value) {
$$key = (int) $$name[$key];
}
}
Si no me equivoco, lo de arriba es lo mismo que hacer:
$address_book = $_POST['address_book'];
foreach ($address_book as $key => $value) {
$name/$surname = (int) $address_book[$key];
}
}
No??
Si es incorrecto lo que intento hacer, dimelo, ya que no me estoy enterando de nada, ¿es un error en la manera de querer hacer esto?
Si no hay nada malo en usar arrays, preferiria hacerlo así a tener que llenar un whitelist con más de 40 nombres. Que pongan lo que quieran en los keys del array, el preg_replace dejará solo letras minusculas y con eso no se puede hacer nada, el prepare dará error al no tener las variables necesarias y no sé ejecutará nada en la base de datos, no veo el problema por ninguna parte.
if ($stmt->error()) {
}
EDITO: Habia otro problema, que al parecer ninguno de los dos nos habiamos dado cuenta... La variable $name que contiene el valor del formulario estaba sobreescribiendo la variable $name del primer foreach... Le he cambiado el nombre y ahora puedo ver el mismo error para todos los campos del array address_book:
Warning: Illegal string offset 'name' in /home/aet/website.com/pages/upload.php on line 34
Notice: Undefined variable: a in /home/aet/website.com/pages/upload.php on line 34
Warning: Illegal string offset 'name' in /home/aet/website.com/pages/upload.php on line 38
Notice: Undefined variable: a in /home/aet/website.com/pages/upload.php on line 38
name variable (from address_book ) created2... OK!
Warning: Illegal string offset 'surname' in /home/aet/website.com/pages/upload.php on line 34
Notice: Undefined variable: a in /home/aet/website.com/pages/upload.php on line 34
Warning: Illegal string offset 'surname' in /home/aet/website.com/pages/upload.php on line 38
Notice: Undefined variable: a in /home/aet/website.com/pages/upload.php on line 38
surname variable (from address_book ) created2... OK!