Foros del Web » Programando para Internet » PHP »

Variable: $_REQUEST

Estas en el tema de Variable: $_REQUEST en el foro de PHP en Foros del Web. My pregunta es muy simple que partido le podemos sacar a $_REQUEST ( Junto con GET POST ) y si hay algun fallo algo interesante ...
  #1 (permalink)  
Antiguo 02/09/2003, 07:37
 
Fecha de Ingreso: julio-2003
Ubicación: Europa
Mensajes: 37
Antigüedad: 20 años, 9 meses
Puntos: 0
Busqueda Variable: $_REQUEST

My pregunta es muy simple que partido le podemos sacar a $_REQUEST ( Junto con GET POST ) y si hay algun fallo algo interesante que tenga que saver de esta variable? ( Perdon si ya esta tratado el tema )


Traducción liebre ( Gracias a un traductor de ingles español de estos gratuitos "Ósea mu mal traducido" ).

Variable: $_REQUEST
Nota: Introducido en 4.1.0. no hay ninguna nada equivalente en las versiones más tempranas.

Nota: Antes de PHP 4.3.0, $_FILES la información también es incluida en _$_REQUEST.

Una serie asociativa que consiste en los volúmenes de $_GET, $_POST, y $_COOKIE.

Esto es una 'superglobal', o variable global automática. Esto simplemente significa que está disponible en todos los alcances a lo largo del codigo. No necesita hacer el global $_REQUEST; para accederlo dentro de funciones o métodos.

Si el register_globals director es fijo, entonces estas variables también se harán disponible en el alcance global del xodigo; es decir, separado de $_REQUEST. Para la información relacionada, vea el capítulo de seguridad "Using Register Globals" (Usando el Registro Globals). Estas globals individuales no son las autoglobals (Variable reservada por PHP).


Variable: $_REQUEST
Variables proporcionadas al script por medio de cuaquier mecanismo de entrada del usuario y por lo tanto no se puede confiar en ellas. La presencia y el orden en que aparecen las variables en esta matriz es definido por la directiva de configuración variables_order* . Esta matriz no tiene un análogo en versiones anteriores a PHP 4.1.0. Vea también import_request_variables().

(variables_order string)*
Asigna el orden del analizador de variables EGPCS (Environment, GET, POST, Cookie, Server). El valor por defecto de esta directiva es "EGPCS". Asignandole el valor "GP", por ejemplo, causará que PHP ignore por completo las variables de entorno, cookies y variables server y sobreescriba toda variable GET con variables POST del mismo nombre.


Esto es un ejmplo muy simple con pequeños esperimentos para ver que podia hacer con la Variable. Así que no os asusteis de las conclusiones no tienen muchos sentido pero mas o menos.

Código PHP:
<?
if($_REQUEST['ejemplo'] == 1){
    print 
"<font size='1' face='Verdana'>Con GET presenta <font color='550000'>(".$_GET['ejemplo'].")</font>, con POST presenta <font color='005500'>(".$_POST['ejemplo'].")</font>, con REQUEST presenta <font color='000055'>(".$_REQUEST['ejemplo'].")</font><br>";
    print 
"<br>Primera conclusión tras realizar ejemplo 1 - Conclusión ( Creo que puede ser que errónea ) el predefinido de la variables normales el GET el método que inserta por defecto en el casos, POST solo en los formularios es cullo caso también podemos emplear el mismo POST o GET en el susodicho caso ( Uno uo otro de forma indiferente, según la necesidades ) y el REQUEST en ejemplo uno actua como GET.<br>";
    print 
"<br><a href='?'>Atrás</a></font>";
}else if(
$_REQUEST['ejemplo'] == 2){
    print 
"<font size='1' face='Verdana'>Con GET presenta <font color='550000'>(".$_GET['ejemplo'].")</font>, con POST presenta <font color='005500'>(".$_POST['ejemplo'].")</font>, con REQUEST presenta <font color='000055'>(".$_REQUEST['ejemplo'].")</font><br>";
    print 
"<br>Primera conclusión tras realizar ejemplo 2 - Conclusión ( Creo que puede ser que errónea ) utilizando el metodo GET en este caso nos encontramos que = que en el ejemplo 1 solo REQUEST y GET logran resultado.<br>";
    print 
"<br><a href='?'>Atrás</a></font>";
}else if(
$_REQUEST['ejemplo'] == 3){
    print 
"<font size='1' face='Verdana'>Con GET presenta <font color='550000'>(".$_GET['ejemplo'].")</font>, con POST presenta <font color='005500'>(".$_POST['ejemplo'].")</font>, con REQUEST presenta <font color='000055'>(".$_REQUEST['ejemplo'].")</font><br>";
    print 
"<br>Primera conclusión tras realizar ejemplo 3 - Conclusión ( Creo que puede ser que errónea ) Tanto REQUEST como POST logran resultado, lo que me g¡hace pensar que REQUEST actua como post.<br>";
    print 
"<br><a href='?'>Atrás</a></font>";
}else if(
$_REQUEST['ejemplo'] == 4){
    print 
"<font size='1' face='Verdana'>Con GET presenta <font color='550000'>(".$_GET['ejemplo'].")</font>, con POST presenta <font color='005500'>(".$_POST['ejemplo'].")</font>, con REQUEST presenta <font color='000055'>(".$_REQUEST['ejemplo'].")</font><br>";
    print 
"<br>Primera conclusión tras realizar ejemplo 4 - Conclusión ( Creo que puede ser que errónea ) Bueno simplemente logramos el mismo resultado que si usamos GET pot lo que en my conclusión 4 fianal se podria decir que si no ponemos post el metodo que tomo por predefinido es el GET method='REQUEST' daria = que pusiera method='fsaasddsasaddsa' dado que REQUEST solo esta despinado a los resultados falta de mirar las $_COOKIE creo que tendre que seri comiendome el coco para sacar mas parido a esto.<br><br>Pero a primero ojo yo lo usuaria para hacer mis formularios en los resultados así solo tendria que modificiar method='' segun el tipo de sistema que quiera GET o POST";
    print 
"<br><a href='?'>Atrás</a></font>";
}else{
    print 
"<font size='1' face='Verdana'>Con GET presenta <font color='550000'>(".$_GET['ejemplo'].")</font>, con POST presenta <font color='005500'>(".$_POST['ejemplo'].")</font>, con REQUEST presenta <font color='000055'>(".$_REQUEST['ejemplo'].")</font><br>";
    print 
"<br>Primera conclusión por defecto ( Creo que puede ser que errónea ) No hay ningún resultado por que no hemos aplicado a un ninguna variable, a hora es el momento de ver y decidir cual de los ejemplos de REQUEST deseamos ver primero<br>";
    print 
"<br><a href='?ejemplo=1'>Ejemplo 1 - ?ejemplo=1</a>";
    print 
"<form name='ejemplo2' action='' method='GET'><input name='ejemplo' type='hidden' value='2'><input name='ejemplo2' type='Submit' value='GET'></form>?ejemplo=2 (Metodo - GET)";
    print 
"<form name='ejemplo3' action='' method='POST'><input name='ejemplo' type='hidden' value='3'><input name='ejemplo3' type='Submit' value='POST'></form>?ejemplo=3 (Metodo - POST)";
    print 
"<form name='ejemplo4' action='' method='REQUEST'><input name='ejemplo' type='hidden' value='4'><input name='ejemplo4' type='Submit' value='REQUEST'></form>?ejemplo=4 (Metodo - REQUEST (Equivalente en este a GET))</font>";
}
?>

Salu2 y gracyas por ya ayuda
  #2 (permalink)  
Antiguo 03/09/2003, 20:59
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 3 meses
Puntos: 129
$_REQUEST .. como dice la explicación que has puesto es un array que contiene (contendrá) todas las variabels que envies desde un formulario (sea method=GET o POST: $_GET y $_POST respectivamente) .. por el URL (entrarian por GET), cookies ($_COOKIES) y variables de servidor ($_SERVER) y en PHP 4.3.0 en adelante si mal no recuerdo .. incluye $_FILES también ..

¿Que utilidad tiene? .. Bueno, hay ocasiones que tienes un script "multipropósito" el cual recibirá variables de .. por ejemplo un formulario en method POST y por el URL tambien (por GET) .. he de ahí donde se hace interesante usar el array superglobal $_REQUEST ya que no tendrás que mirar en $_GET y en $_POST por tus variables (incluso recorriendo $_REQUEST como array que es con un bucle tipo foreach() tendrías todas tus variables al momento sin más lógica por médio).

Pero, recuerda que $_REQUEST tambíen contendrá las variables de Cookies que puedas usar e incluso $_FILES .. En ocasiones puedes requerir de un script multipropósito, si, pero sólo como el del caso que te he propuesto. Ahí sería recomendable hacer un simple "iF" para ver si la variable "entró" por GET o por POST pero descartando a $_COOKIES por ejemplo ..

Un saludo,
__________________
Por motivos personales ya no puedo estar con Uds. Fue grato haber compartido todos estos años. Igualmente los seguiré leyendo.
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 10:57.