Tema: FAQ's de PHP
Ver Mensaje Individual
  #4 (permalink)  
Antiguo 08/11/2002, 16:13
Cluster
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 10 meses
Puntos: 129
register_globals .. ON u OFF? variables Globales?

Tema: Seguridad/buenas maneras xD

Pregunta:
Que diferencias hay entre usar para pasar variables de un script a otro: $variable_nombre, $HTTP_xxx_VARS['variable_nombre'], $_XXX['variable_nombre'].

Respuesta:
Cuando recogemos variables via $variable, estamos asumiendo que son Globales, es decir q da igual por el metodo/tipo de envio que se use (en caso de formularios es lo q se indica en el method= .. si entran por el URL es GET .. si son cookies, sessiones, variables de servidor ... etc no distinguimos.).

Con array $HTTP_xxx_VARS[] (donde xxx es el metodo/tipo: GET, POST, SERVER, COOKIE, SESSION, FILES .. etc) filtramos las variables que recogemos segun su metodo de envio esperado. Es decir, no aceptamos nada mas q lo q esperamos. Si enviamos variables por metodo POST las recogeriamos:
$HTTP_POST_VARS['variable']
Y no aceptariamos ninguna variable (con nombre "variable") que venga por GET .. ademas de distinguirla con respecto a si es una variable de session, cookie, file .. etc.
Este array $HTTP_xxx_VARS está disponible desde las versiones 4.0.x en adelante y hoy por hoy (ver fecha de la faq) estan habilitadas y se pueden usar .. auque "dicen" q a futuro desaparecera en nuevas versiones de PHP.

El array "superglobal" ($_GET, $_POST, $_SERVER .. etc) que denomina PHP, está disponible desde la versión 4.1.x en adelante y es a futuro lo q deberiamos usar a la hora de recoger nuestras variables de formularios y demas medios.
Ademas $_xxx te permite trabajar sin problemas con servidores con la directiva register_globals a ON u a OFF.
Su forma de trabajar seria igual q para $HTTP_xxx_VARS .. solo q el array "superglobal" ahora es "global" es decir .. si llamanos en una funcion a $_GET por ejemplo .. no debemos de declararlo como global $_GET.


mas info
Variables predefinidas de PHP:
http://www.php.net/manual/es/languag...predefined.php

Un saludo,

Última edición por jam1138; 04/01/2009 a las 23:15 Razón: Elimino enlace caducado.