Foros del Web » Programando para Internet » PHP »

Me permite NULL mi web

Estas en el tema de Me permite NULL mi web en el foro de PHP en Foros del Web. Chavales tengo un problema con los NULL , necesito que mi código PHP al recibir la información de un formulario, detecte los campos vacios y ...
  #1 (permalink)  
Antiguo 17/11/2008, 04:56
 
Fecha de Ingreso: mayo-2008
Mensajes: 75
Antigüedad: 15 años, 10 meses
Puntos: 0
Me permite NULL mi web

Chavales tengo un problema con los NULL , necesito que mi código PHP al recibir la información de un formulario, detecte los campos vacios y no se haga el INSERT, pero no hay manera , ya que solo consigo que meta un 'NULL' y no NULL (Sin comillas) que sería lo correcto. Este es el código:

Código PHP:
     $Nacimiento $_POST['Ano']."-".$_POST['Mes']."-".$_POST['Dia'];
     
     if ( 
$_POST['Dni'] == "")        {$_POST['Dni'] = "NULL";  echo "<br>No has puesto el DNI";}
     if ( 
$_POST['Nombre'] == "")     {$_POST['Nombre'] = "NULL"; echo "<br>No has puesto el nombre";}
     if ( 
$_POST['Apellidos'] == "")  {$_POST['Apellidos'] = "NULL"; echo "<br>No has puesto el apellidos";}
     if ( 
$_POST['Pais'] == "")       {$_POST['Pais'] = "NULL"; echo "<br>No has puesto el pais";}
     if ( 
$_POST['Poblacion'] == "")  {$_POST['Poblacion'] = "NULL"; echo "<br>No has puesto el poblacion";}
     if ( 
$_POST['Provincia'] == "")  {$_POST['Provincia'] = "NULL"; echo "<br>No has puesto el provincia";}
     if ( 
$_POST['CP'] == "")         {$_POST['CP'] = "NULL"; echo "<br>No has puesto el codigo postal";}
     if ( 
$_POST['Telefono'] == "")   {$_POST['Telefono'] = "NULL"; echo "<br>No has puesto el telefono";}
     if ( 
$_POST['Direccion'] == "")  {$_POST['Direccion'] = "NULL"; echo "<br>No has puesto la direccion";}
     if ( 
$_POST['Sexo'] == "")       {$_POST['Sexo'] = "NULL"; echo "<br>No has puesto el sexo";}
     if ( 
$_POST['Password'] == "")   {$_POST['Password'] = "NULL"; echo "<br>No has puesto el password";}
     if ( 
$_POST['Email'] == "")      {$_POST['Email'] = "NULL"; echo "<br>No has puesto el email";}
     
     if (
$_POST['Password'] != $_POST['Confirmar'])  echo "<br>Password incorrecto";
     
       
//Se usan las funciones utf8_encode() y utf8_decode() para codificar y descofidicar en caracteres UTF. Para que mySQL acepte los acentos y la ñ del idioma español.
     
$sql "INSERT INTO `usuario` VALUES ('".$_POST['Dni']."', 'Medico' , '".$_POST['Nombre']."', '".utf8_encode($_POST['Apellidos'])."', '".$_POST['Pais']."', ".$_POST['CP'].", '".utf8_encode($_POST['Direccion'])."' , '".utf8_encode($_POST['Sexo'])."'  , '".$_POST['Telefono']."', '".utf8_encode($_POST['Poblacion'])."', '".utf8_encode($_POST['Provincia'])."' , '".utf8_encode($_POST['Email'])."', '".$Nacimiento."' , '".utf8_encode($_POST['Password'])."');"
Aún metiendo campos vacios me sigue haciendo la inserción y no salta el error. ¿Que se os ocurre? ¿Como lo haceis vosotros?

Saludetes...
  #2 (permalink)  
Antiguo 17/11/2008, 07:15
AlvaroG
Invitado
 
Mensajes: n/a
Puntos:
Respuesta: Me permite NULL mi web

El problema es justamente que le estás agregando comillas en la sentencia SQL. Es decir, le estás poniendo la cadena "NULL" en vez del valor NULL.
Para solucionarlo, deberías buscar la forma de que no se agreguen siempre las comillas, es decir, en vez de esto:

'".$_POST['Nombre']."'

usar

".$_POST['Nombre']."

Y ocuparte de agregar las comillas solamente cuando sea necesario, quizás con algo así

Código PHP:
if (empty($_POST['nombre'])) {
    
$_POST['nombre'] = null;
} else {
    
$_POST['nombre'] = "'".$_POST['nombre']."'";


Saludos.
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 15:11.