Tips en PHP: Validar si una variable $_POST está vacía

Standard

Supongamos que queremos validar si están vacíos los datos que viajan mediante un formulario mediante el método $_POST.
Se hace bastante denso hacer esto por cada parámetro

if (empty($_POST["nombre"]))
{
       echo "El nombre esta vacío.:.";
}
if (empty($_POST["apellido"]))
{
       echo "El apellido esta vacío.:.";
}

Y así con todos los parámetros que queremos validar…
Para eso podemos hacer esto…

       
foreach ($_POST as $key => $value)
 {
        if (empty($value))
        {
               echo "<strong>El campo $key esta vacío.:.</strong>";
               break;
        }
}

Con esto lo que hacemos es recorrer todas las variables POST, y al encontrar una vacía salimos del bucle y mostramos el error.
Pero si tengo datos que quiero que sean vacíos???

foreach ($_POST as $key => $value)
{
       if ($key<>'actividad' AND $key<>'cuil' AND $key<>'razon' AND $key<>'producto')
       {
               if (empty($value))
               {
                    echo "<strong>El campo $key esta vacío.:.</strong>";
                    break;
               }
       }
}

En esta caso actividad, cuil, razon y producto pueden estar vacios, por lo tanto eluden la condición empty.

Bueno espero que les sirva a la hora de programar en PHP.
Saludos

FB Comentarios

19 thoughts on “Tips en PHP: Validar si una variable $_POST está vacía

  1. Hola, este post me sirvio para reducir considerablemente las lineas de mi script php.

    Ahora ¿Hay una forma de que muestre de una sola vez todos los campos que faltan?

    Elemplo:

    Faltan los campos: Nombre, Apellido, Edad, Etc…

    Gracias por la publicación..

  2. Proba con esto…

    $flag = false;
    foreach ($_POST as $key => $value)
    {
        if (empty($value))
        {
             if($flag)
             {
                  echo " <strong>, $key</strong>";
             }
             else
             {
                  echo "<strong>Faltan los campos: $key</strong>";
             }
        }
    }

    Gracias por comentar…

  3. 1.- cual es la utilidad de flag
    2.- si vas a comprobar tantos campos que si pueden estar vacios, ponlos en un array $okvacios y luego usa un if(!in_arry($key,$okvacios))
    3.- muchas otras cosas que he visto en tu seccion de php estan en serio buenas

  4. @FCR

    Tienes toda la razón, puedes usar in_array y sin duda sera mas eficiente. Las entradas de PHP en el blog son de código que hago y comparto con ustedes, y va mejorando a medida que vaya aprendiendo.

    Esta entrada es de mas de un año ya, pero me alegro que te haya servido.

    Saludos, y gracias por comentar…

  5. Diego

    Vacan pero tengo otro problema, quiero validar mis post, quiero que siempre mis entradas aparescan siempre una debajo de otra, por que tengo el problema que si la foto es grande o algunas no tiene texto se deforman y no bajan, haber si me ayudan, quiero q todos mis post esten correctamente aliniados.

  6. Gracias a personas que comparten sus conocimientos yo que no tengo ni idea de programar he podido hacer mis pinitos en este mundillo… he usado esta formula para unos formularios de una página de una amiga y me ha funcionado perfectamente.

    if (empty($_POST[“OK_CONDICIONES”][“NOMBRE”][“EMAIL”]))
    die(include(“error.html”));

    He puesto en una linea todos los campos que no se permiten vacíos ( que son unos cuantos mas que los del ejemplo que pongo) y con un die llamo a un mensaje de error indicando que los campos indicados con texto rojo deben estar cumplimentados que mediante un botón con onclick=”history.back(); me vuelve atrás sin borrar lo ya cumplimentado…

    Zarpele yo soy músico y animador 3D si necesitas música original o algo relacionado con el 3d no dudes en pedírmelo, será un placer por mi parte atenderte. Puedes ver algo de lo que hago si lo deseas en mi web.
    Saludos y el mundo sería un lugar mejor si se rigiera por la filosofía que mueve a linux.

  7. Deus

    Mi estimado, tengo un detallito con una linea de PHP, en la cual quiero que si falta un dato de un formulario solo me muestre un mensaje, de lo contrario me haga lo necesario, utilizando el IF, mi codigo es el sig,

    if ($txtNombre == “” )
    {
    echo “”;
    echo “Favor de indicar un nombre”;
    echo “”;
    }
    else
    {
    echo “”;
    echo “formulario completo”;
    echo “”;
    }

    Me puedes decir que hago mal !!!

    Saludos y gracias

  8. Andres Rodriguez

    Amigo muchas gracias por el tip, me ha servido de maravilla, actualmente trabajo en un proyecto y soy nuevo en php y este tip que has publicado me sirvió demasiado.

  9. Rocio

    Hola :) oye disculpa esq tengo dos archivos uno del formulario y el otro es la coneccion a mi base d datos, pero no se donde poner este codigo q tu proporcionas para validar mis campos.

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos necesarios están marcados *

Puedes usar las siguientes etiquetas y atributos HTML: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>