Foros del Web » Programando para Internet » PHP »

Comprobar si una variable esta en blanco con isset()

Estas en el tema de Comprobar si una variable esta en blanco con isset() en el foro de PHP en Foros del Web. Hola, os explico, tengo este formulario html. Os pongo un pequeño trozo por no poner todos los inputs ya que de momento solo estoy trabajando ...
  #1 (permalink)  
Antiguo 22/05/2012, 04:52
 
Fecha de Ingreso: enero-2010
Mensajes: 49
Antigüedad: 14 años, 2 meses
Puntos: 0
Comprobar si una variable esta en blanco con isset()

Hola, os explico, tengo este formulario html. Os pongo un pequeño trozo por no poner todos los inputs ya que de momento solo estoy trabajando con este.

Código HTML:
Ver original
  1. <form action="comprueba.php" method="post">
  2.         <div class="persona">
  3.         Nom: <input name="nom" type="text"/>
  4.                 <input type="submit" name="submit" value="Envia dades">
  5.    
  6.             </div>
  7.             </form>

Ahora estoy haciendo un archivo php donde hago diferentes comprobaciones; que el nombre solo sean letras, dni, fecha de nacimiento.....

Y me surge un problemilla que me ha creado una gran duda. Si yo envío ese campo vacío tiene que saltar un mensaje de error, pero como lo compruebo?

Por ejemplo yo tengo

Código PHP:
Ver original
  1. if (isset($_POST["nom"])){
  2.             echo "Nombre definido";
  3.         }

y siempre printa Nombre definido. Lo que yo quiero es que si ese campo no lo introduzco no printe nada o en su defecto haga otras comprobaciones o demás cosas que mas adelante quiero implementar. He leído algo de "$_SESSION" pero voy un poco perdido con esto.

Muchas gracias
  #2 (permalink)  
Antiguo 22/05/2012, 05:14
lamek
Invitado
 
Mensajes: n/a
Puntos:
Respuesta: Comprobar si una variable esta en blanco con isset()

Prueba con empty...
Código PHP:
if (!empty($_POST["nom"])){
            echo 
"Nombre definido";
        } 
  #3 (permalink)  
Antiguo 22/05/2012, 05:45
 
Fecha de Ingreso: enero-2010
Mensajes: 49
Antigüedad: 14 años, 2 meses
Puntos: 0
Respuesta: Comprobar si una variable esta en blanco con isset()

con empty si funciona, lo que ahora me ocurre es que solo me trata el primer if.

Es decir, si le doy el nombre vacio me printa "introduce nombre" y comprueba el apellido, si el nombre contiene algo, ya no me entra en el siguiente if. Puede ser por el else?

Código PHP:
Ver original
  1. if (!empty($_POST["nom"]))
  2.         {
  3.            
  4.             $permitidos = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZáàéèíìóòúùüïªñÑl·l";
  5.             for ($i=0; $i<strlen($_POST["nom"]); $i++){
  6.                 if (strpos($permitidos, substr($_POST["nom"],$i,1))===false){
  7.                     echo "El nom no pot contenir números o caracters especials";
  8.                     return false;
  9.                 }
  10.                 return true;
  11.             }
  12.              
  13.              
  14.         } else {
  15.                 echo "Introdueix nom <br />";
  16.                 }
  17.        
  18.        
  19.         if (!empty($_POST["cognom"]))
  20.         {
  21.             $permitidos = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZáàéèíìóòúùüïªñÑl·l";
  22.             for ($i=0; $i<strlen($_POST["cognom"]); $i++){
  23.                 if (strpos($permitidos, substr($_POST["cognom"],$i,1))===false){
  24.                     echo "El cognom no pot contenir números o caracters especials";
  25.                     return false;
  26.                 }
  27.                 return true;
  28.             }
  29.              
  30.              
  31.         } else {
  32.                 echo "Introdueix cognom <br />";
  33.                 }


PD: Puede que el código sea algo raro, pero estoy yendo poco a poco y de momento son comprobaciones específicas

Etiquetas: isset
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 09:18.