Comunidad de diseño web y desarrollo en internet online

Obtener todas las variables GET y POST para un PHP

Algunas veces necesitamos usar las variables que nos llegan por GET o POST y necesitamos listarlas todas. O, en mi caso, cuando se hace la actualización de php 4 a php 5 algunas aplicaciones dejan de trabajar porque no tienen declaradas correctamente las variables . Por eso hice este sencillo script que aprovecha que las variables GET y POST vienen en un array y las declara con sus respectivos nombres y valores.

Código :

<?
/***VARIABLES POR GET ***/

$numero = count($_GET);
$tags = array_keys($_GET);// obtiene los nombres de las varibles
$valores = array_values($_GET);// obtiene los valores de las varibles

// crea las variables y les asigna el valor
for($i=0;$i<$numero;$i++){
$$tags[$i]=$valores[$i];
}

/***VARIABLES POR POST ***/

$numero2 = count($_POST);
$tags2 = array_keys($_POST); // obtiene los nombres de las varibles
$valores2 = array_values($_POST);// obtiene los valores de las varibles

// crea las variables y les asigna el valor
for($i=0;$i<$numero2;$i++){ 
$$tags2[$i]=$valores2[$i]; 
}

/*
ahora solo hay que llamar las variables por su nombre
ej: http://misitio.com/estearchivo.php?usuario=cristalab&password=sangre

para verlas solo pones la variable por su nombre
echo "nombre de usuario: ".$usuario."<br>
password: ".$password;

en vez de usar $_GET['usuario'] y $_GET['password']
*/



?>

Nota informativa:


PHP4 trabajaba por defecto el parametro register_globals="on" lo que significa que cuando usabas una variable por GET o POST solo la invocabas (ej: para mostrar la variable $usuario de un formulario solo ponias echo $usuario;).

PHP5 por el contrario usa el parametro register_globals="off" por defecto, como una medida de seguridad y eficiencia del codigo [ mas info ] (ej: para mostrar la variable $usuario de un formulario debes poner echo $_POST['usuario']; ).
A pesar de los beneficios de este cambio, muchos scripts antiguos no toman en cuenta este asunto y pueden dejar de funcionar, para esos casos , ( y para que no te pase siquiera por la cabeza poner de nuevo register_globals en "on" !! :twisted: ) es este script.

¿Sabes SQL? ¿No-SQL? Aprende MySQL, PostgreSQL, MongoDB, Redis y más con el Curso Profesional de Bases de Datos que empieza el martes, en vivo.

Publica tu comentario

El autor de este artículo ha cerrado los comentarios. Si tienes preguntas o comentarios, puedes hacerlos en el foro

Entra al foro y participa en la discusión

o puedes...

¿Estás registrado en Cristalab y quieres
publicar tu URL y avatar?

¿No estás registrado aún pero quieres hacerlo antes de publicar tu comentario?

Registrate