Ver Mensaje Individual
  #17 (permalink)  
Antiguo 04/05/2005, 12:42
Avatar de Neuron_376
Neuron_376
 
Fecha de Ingreso: abril-2005
Mensajes: 1.051
Antigüedad: 19 años, 1 mes
Puntos: 2
Hola...

Si, bueno, para empezar, yo tampoco lo veo como pelea, si no al contrario, veo muy provechosas estas palticas.. asi lo veo yo...

Tu sentencia:

if(isset($_GET["cantidad_child"]) && !empty($_GET["cantidad_child"] ) ){

No se exactamente como trabaja el compilador de php, pero por lo general y normal lo que quieres hacer funcionaria asi...

if isset($_GET["cantidad_child"] = False --> Aun sigue la compilacion porque es una sola linea.

if !empty($_GET["cantidad_child"]) ---> Aqui ocurre el error que mencionabas, porque esta variable no existe, que es el error que mencionabas

Entonces, tener todo en una sola linea esa sentencia puede tener el error que tu mencionaste, asi que esa linea no soluciona el problema...

Por eso mencionaba esta forma:

if (isset($_GET["var"]) --> Verificar si existe la variable.
{

$var = $_GET["var"]; --> Recuperar la variable tal como esta.
$var = trim($Var); --> Limpias la variable de espacios en blanco, y caracteres raros como TAB.

if empty($Var) --> Ahora si sabes que la variable esta totalmente limpia, y aseguras que esta sentencia es correcta, despues de esto y puedes convertir la variable al tipo que necesitas y ver errores de TIPO_DE_DATOS, algo como:

$var = (int)%var;

}

Pero ya te aseguraste de que la variable es valida... con el Isset solamente pasa esto:

_ = Espcio en blanco

$var = "__cadena_" = True
$var = "___" = True
$var = "[TAB]" = True

Entonces, ahi esta el error de usar solo Isset y Empty, porque Empty dice que la cadena no esta vacia porque encuentra espacios vacios.

Tambien algo como

$var = NULL = True (Isset), False(Empty)

Entonces ese es el detalle donde veo que cae el error.

Por eso decia que era mejor, primero tener las lineas separadas por como trabaja el compilador al evaluar esa linea, y tambien el detalle de tener cadenas sucias que no seran detectadas por esa linea.

Bueno, esa es mi manera de mirar ese caso, y de hecho a ese tipo de validaciones aplica como te digo para todo, Get, Post, Session, Cookies, etc, y tambien para otros lenguajes como ASP.

Ademas... jejejeje, validar de esa forma te quita muchos problemas, como SQL Injection, etc.

Bueno, ese es mi punto de vista... un saludo