Foros del Web » Programando para Internet » PHP »

Declarar variables _POST y _GET

Estas en el tema de Declarar variables _POST y _GET en el foro de PHP en Foros del Web. Buenas! Estoy intentando hacer mi código más seguro y como buena práctica me he propuesto declarar todas las variables, para ello he puesto el php.ini ...
  #1 (permalink)  
Antiguo 20/03/2010, 09:12
 
Fecha de Ingreso: marzo-2004
Mensajes: 283
Antigüedad: 20 años, 2 meses
Puntos: 2
Declarar variables _POST y _GET

Buenas! Estoy intentando hacer mi código más seguro y como buena práctica me he propuesto declarar todas las variables, para ello he puesto el php.ini en error_reporting = E_ALL.

Pues bien, mi problema llega a la hora de declarar variables llegadas via GET, no tengo ni idea de como hacerlo. En mi index.php tengo un switch que funciona tal que así:

Código PHP:
switch ($_GET['a']) 
{
    case 
"":
    
$cuerpo "inicio";
    break;
    case 
"fotos":
    
$cuerpo $_GET['a'];
    break;
    case 
"enlaces":
    
$cuerpo $_GET['a'];
    break;
    case 
"contacto":
    
$cuerpo $_GET['a'];
    break;
    default:
    
$cuerpo "404";

Es decir, maneja el uso de la variable $a cuando la pasan por URL. El problema viene cuando alguien entra directamente a la web, escribiendo el dominio y nada más, entonces el switch ve que la variable $a no existe y le otorga el valor "inicio", pero es en este caso cuando PHP me dice
Código PHP:
NoticeUndefined indexa in /home/servidor/web/index.php on line 9 
¿Cual es la manera correcta de declarar estas variables que vienen por GET? Si al principio del script pongo $_GET['a'] = false; me cargo todos los valores que se pasen cada vez, así que estoy bastante perdido. A ver si alguno sabe como hacerlo. Muchas gracias!
  #2 (permalink)  
Antiguo 20/03/2010, 09:20
Avatar de abimaelrc
Colaborador
 
Fecha de Ingreso: mayo-2009
Ubicación: En el planeta de Puerto Rico
Mensajes: 14.734
Antigüedad: 15 años
Puntos: 1517
Respuesta: Declarar variables _POST y _GET

En realidad eso no es un error, si no una notificación, cuando estés en producción debes indicar en el error_reporting de esta forma
Código codigo:
Ver original
  1. error_reporting = E_ALL & ~E_NOTICE
__________________
Verifica antes de preguntar.
Los verdaderos amigos se hieren con la verdad, para no perderlos con la mentira. - Eugenio Maria de Hostos
  #3 (permalink)  
Antiguo 20/03/2010, 09:40
Avatar de darkasecas  
Fecha de Ingreso: marzo-2005
Ubicación: SantaCata, NL, Mexico
Mensajes: 1.553
Antigüedad: 19 años, 1 mes
Puntos: 77
Respuesta: Declarar variables _POST y _GET

Tambien puedes usar isset() para saber si esta definida la varaiable, y si no, la inicializas a un valor default?
  #4 (permalink)  
Antiguo 20/03/2010, 10:51
 
Fecha de Ingreso: marzo-2010
Ubicación: Callao - Peru
Mensajes: 13
Antigüedad: 14 años, 1 mes
Puntos: 0
Respuesta: Declarar variables _POST y _GET

Eso es porque la variable $a no existe y solo se crea cuando los usuarios le dan click a un enlace (que supongo sera : enlace.php?a=valor), por eso te sale esa notificacion.
Prueba de esta manera (antes del switch declara esto):

Código PHP:
$a=(isset($_GET['a']))?$_GET['a']:""
Esta linea comprueba si existe $_GET['a'], si existe lo asigna a $a de lo contrario le asigna un valor vacio o lo que quieras.


Saludos !!

Etiquetas: declarar, post, variables
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 16:42.