Título: [Solucionado] variables dinamicas dentro de funciones ( is_numeric($$variable) ) Publicado por: gAb1 en 29 Marzo 2016, 03:54 am Hola, estoy intentando crear un script que declare y limpie las variables de formularios largos, donde hayan arrays de numeros y strings, pero utilizando un whitelist para los nombres de los elementos. Me están dando errores:
Citar Warning: Illegal string offset 'name' in /home/aet/website.com/pages/upload.php on line 34 YNotice: Undefined variable: a in /home/aet/website.com/pages/upload.php on line 34 Citar 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 De momento esto es lo que tengo: Código
El html es de lo más sencillo, los arrays los tengo asi: Código ¿Alguna idea de por qué no funciona? :-\ Gracias! Título: Re: variables dinamicas dentro de funciones ( is_numeric($$variable) ) Publicado por: ivancea96 en 29 Marzo 2016, 11:58 am ¿Y así?
Código
Título: Re: variables dinamicas dentro de funciones ( is_numeric($$variable) ) Publicado por: gAb1 en 29 Marzo 2016, 17:30 pm Así seguramente funcionaria, pero el objetivo es automatizar para facilitar el proceso. Cuando hay formularios largos, con muchos campos (unos 40-50) se crean los arrays para agrupar y separar (organizar) los campos.
La cuestión es saber por qué no funciona y saber arreglarlo. Cuando los formularios apenas tienen 10-15 campos pues si que es mejor hacerlo a mano, pero cuando hay más de 40 la cosa cambia, además de poder usarlo en todos los formularios que necesites. Título: Re: variables dinamicas dentro de funciones ( is_numeric($$variable) ) Publicado por: ivancea96 en 29 Marzo 2016, 17:56 pm Si quieres automatizarlo, puedes poner un nombre del tipo address_book_name.
El caso es que le estas dando un nombre, y luego accedes a él con otro. Si quieres pasar con el mismo nombre múltiples formularios, puedes pasar un hidden con un identificador del formulario: Código
Luego en el PHP, por ejemplo: Código
Y ya, como sea que lo quieras hacer. Si van a ser muchos campos de un mismo formulario, entonces no hay mucho más que decir. Todos van a tener nombres diferentes. Si quieres automatizar el acceso a todos estos, puedes ponerles un prefijo y acceder mediante el array de POST a los que tengan ese prefijo. Título: Re: variables dinamicas dentro de funciones ( is_numeric($$variable) ) Publicado por: gAb1 en 29 Marzo 2016, 18:25 pm 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: Código
Si no me equivoco, lo de arriba es lo mismo que hacer: Código
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. Código
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: Citar 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! Título: Re: variables dinamicas dentro de funciones ( is_numeric($$variable) ) Publicado por: gAb1 en 29 Marzo 2016, 19:50 pm Ok I got it! ;D
El problema está en que no necesito el nombre del elemento para declarar el array: Código
|