Está usted en Indice > Construcción > Lenguajes > PHP > Lecciones y Paso a Paso > La directiva register_globals en PHP 4.2.0
Construcción
Maletín
Utilidades
Cursos
Promoción
Rentabilidad
Zona Novatos
Foros
Acceso a tu cuenta

La directiva register_globals en PHP 4.2.0

A partir de la versión de PHP 4.2.0 el valor por defecto de la directiva register_globals es off. El por qué de este cambio viene motivado por un aumento del nivel de seguridad en la configuración del PHP por defecto. Pero esto puede provocar que nuestras páginas dejen de funcionar.

La directiva register_globals cuando esta activada (estado que estaba por defecto antes de la versión 4.2.0 de PHP), provoca que automáticamente se generen variables globales para cookies y valores enviados por get y post entre otros.

Por ejemplo:
Si llamábamos a una página con http://www.internet.com/prueba.php?var1=4, esto provocaba que en la página prueba.php automáticamente se generase la variable $var1 con el valor 4.

Por razones de seguridad este comportamiento automático se ha cambiado, estableciendo el valor por defecto de register_globals a off.

Este cambio puede producir que nuestras antiguas páginas dejen de funcionar, ante esto tenemos dos opciones:

  • Activar el register_globals a on.
  • Dejar register_globals a off y cambiar nuestras páginas por las referencias adecuadas a cada caso. Esta es la opción más recomendable.
¿Cómo debemos hacer este cambio?

Debemos buscar todas aquellas variables que son definidas automáticamente, variables del servidor, que provienen de get o post, cookies, files, variables de entorno o sesión.

Reemplazar esas variables por las referencias adecuadas en cada caso, en PHP se han definido unos arrays diferentes con valores, dependiendo del lugar de procedencia. Así tenemos los arrays $_SERVER, $_GET, $_POST, $_COOKIE, $_FILES, $_ENV, $REQUEST y $_SESSION.

Si por ejemplo teníamos el siguiente script:

print "Su edad: ".$edad; //cookie
print "Navegador: ".$HTTP_USER_AGENT;
print "Variable: ".$var; //variable de get

Deberíamos reemplazarlas por:

print "Su edad: ".$_COOKIE['edad']; //cookie
print "Navegador: ".$_SERVER['HTTP_USER_AGENT'];
print "Variable: ".$_GET['var']; //variable de get



Autor: Joaquín García
http://www.webestilo.com/php/articulo.phtml?art=38

Usuarios que han visto este tema también han visto...

- Contar el número de lineas y caracteres en archivo PHP
- Encriptación de contraseñas en PHP
- Subir archivos con PHP por FTP
- El tema quizá pueda parecer trivial... ¿Un FAQ del echo? Sin embargo, éste aunque va dirigido primordialmente a principiantes, también puede ser aprovechado por usuarios experimentados que hayan adquirido ciertos vicios en la programación con PHP (algo b
- Ejecutar comandos shell mediante PHP


Versión imprimible - Versión imprimible de este documento
Enviar e-mail - Enviar por e-mail este documento
Publicidad

Información legal | Política de Privacidad | Contacte con nosotros

Otro proyecto de Factoría de Internet. Copyright© 2003-2008 Factoría de Internet S.L.. Todos los derechos reservados.


Página generada el 20-11-2008 a las 00:35:15