Ver Mensaje Individual
  #2 (permalink)  
Antiguo 13/11/2007, 07:00
Avatar de Kelpie
Kelpie
 
Fecha de Ingreso: febrero-2002
Ubicación: NorthSpain
Mensajes: 609
Antigüedad: 22 años, 2 meses
Puntos: 8
Re: PROBLEMA CON Notice: Undefined index Y Notice: Undefined variable

1.- isset() es una función cuyo objetivo es saber si una variable está definida. El concepto de "ser usado con el isset" no tiene mucho sentido. Emplea el isset() si vas a utilizar una variable que no estás seguro de si está declarada. Obviamente, la mayor parte de las veces se emplea para saber si existen variables que se han de recibir via POST,GET,COOKIEs etc, ya que las declaradas en el script ya sabes que están declaradas.

2.- Si register_globals está en "off" y tu script está diseñado para tenerlo en "on" sí que tienes un problema. La consecuencia es que, suponiendo una variable que esperas por GET llamada "edad", en tu script la empleas como $edad directamente, en cambio, con register_globals=off debes referirte a ella como $_GET['edad'], por ejemplo.

Hay dos soluciones:

a.- La mala y a ser posible a evitar: solicitar que te pongan regsiter_globals a on. Es un agujero de seguridad importante, pero te evita modificar código.
b.- Emplea las variables refiriéndote a ellas según por donde te entren. La manera más sencilla es $_GET[] $_POST[] $_COOKIE[] etc. Debes tener mucho cuidado porque puedes tener variables como el $edad de arriba por el código que no están definidas porque se refieren a una superglobal antigua. En el ejemplo de arriba, lo mejor sería, al inicio del script, cargar las variables con sus valores:

Código PHP:
$edad=$_POST['edad']; 
Y luego en el resto del código puedes seguir empleando $edad tan ricamente.
__________________
Kelpie

Última edición por Kelpie; 13/11/2007 a las 07:08 Razón: Ampliar un poco la respuesta