Foros del Web » Programando para Internet » PHP »

Crear variables de nombre el índice de los array $_POST $_GET etc - sería seguro?

Estas en el tema de Crear variables de nombre el índice de los array $_POST $_GET etc - sería seguro? en el foro de PHP en Foros del Web. Bueno, aver si me consigo explicar. La idea, es que a veces es un poco latoso tener que estar haciendo alusión a una variable pasada ...
  #1 (permalink)  
Antiguo 20/10/2004, 16:26
Avatar de yoseman  
Fecha de Ingreso: diciembre-2003
Ubicación: Alicante (Spain)
Mensajes: 471
Antigüedad: 20 años, 3 meses
Puntos: 5
Crear variables de nombre el índice de los array $_POST $_GET etc - sería seguro?

Bueno, aver si me consigo explicar.
La idea, es que a veces es un poco latoso tener que estar haciendo alusión a una variable pasada por $_GET o por $_POST de está forma, con lo cuál muchas veces acabo cómo la mayoría supongo (no sé si correctamente) haciendo lo siguiente:
Código PHP:
$indice=$_GET['indice']; 
Bueno y esto es como se explica claramente en una de las faqs de este foro porque si pusiesemos directamente $indice si asignarlo al valor del array superglobal que corresponda, se puede confundir con cualquiera de los existentes.
Entonces se me ocurrió esto:
Código PHP:
while (list($key,$val)=each($_GET)){
   $
$key=$val;

Que funciona correctamente (para $_GET en el ejemplo claro), pero que no sé hasta que punto es seguro. O sea, realizaría el cambio ese que al menos yo repito una y otra vez para todas las variables del array. Pero no tengo la suficiente experiencia como para saber si eso puede ser peligroso :$
Esa es mi pregunta.

Salu2
__________________
[+]
[+]
  #2 (permalink)  
Antiguo 20/10/2004, 22:37
Avatar de jpinedo
Colaborador
 
Fecha de Ingreso: septiembre-2003
Ubicación: Lima, Perú
Mensajes: 3.120
Antigüedad: 20 años, 6 meses
Puntos: 41
Para recorrer un array.... hoy en día ya no hace falta hacer ese while-list-each...
Para eso existe el bucle "foreach"... con lo que tu código quedaría así:
Código PHP:
foreach($_GET as $key=>$val){ 
   ${
$key} = $val

Puedes hacerlo con GET, POST, SESSION, o el array que quieras... la verdad es que lo único que haces es repetir la variable y no le termino de encontrar la utilidad.

Ahora... para extraer un array asociativo como lo has hecho, ya existe la función extract() http://www.php.net/extract con una simple línea (mira en el manual los parámetros adicionales porque son importantes)
Código PHP:
extract($_GET); 
Pero lo realmente importante es que tú controles de dónde vienen esas variables... si tienes un formulario que te envía a "proceso.php"... yo podría llamar directamente a ese script "proceso.php?var1=valor1&var2=valor"... cuando tú conviertas las POST (como no hay)... no va a pasar nada... y va a leer directamente las que le pasé por URL.

Como te digo... lo realmente importante es cómo tú controlas el acceso a tus scripts.... yo personalmete prefiero utilizar los arrays superglobales... $_POST, $_GET, $_SESSION, etc... cuando te acostumbras ya no se te hace tedioso.

saludos

Última edición por jpinedo; 20/10/2004 a las 22:38
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 14:26.