Foros del Web » Programando para Internet » PHP »

Como chequear que todos los campos de un formulario estan vacios al pasarlos por POST

Estas en el tema de Como chequear que todos los campos de un formulario estan vacios al pasarlos por POST en el foro de PHP en Foros del Web. El titulo lo dice todo...creo :P El problema que se me presenta corresponde a un formulario de busqueda, si el usuario me deja todos los ...
  #1 (permalink)  
Antiguo 20/11/2006, 20:11
 
Fecha de Ingreso: septiembre-2006
Ubicación: Montevideo
Mensajes: 46
Antigüedad: 17 años, 7 meses
Puntos: 1
De acuerdo Como chequear que todos los campos de un formulario estan vacios al pasarlos por POST

El titulo lo dice todo...creo :P

El problema que se me presenta corresponde a un formulario de busqueda, si el usuario me deja todos los campos vacios yo tengo que generar una sentencia SQL acorde a eso. En caso contrario generare una SQL diferente.

Especificamente quiero saber como preguntar:

if (empty($_POST)){

//hago una cosa

}else{

//hago otra cosa

}

Esta claro que el codigo anterior no funciona, quisiera que alguien pudiera decirme como hacer esa pregunta.

Desde ya agradezco toda la ayuda que puedan darme.
Saludos a todo el foro.
  #2 (permalink)  
Antiguo 20/11/2006, 20:24
Avatar de Netfrank  
Fecha de Ingreso: marzo-2006
Ubicación: Las Talitas - Tucumán
Mensajes: 226
Antigüedad: 18 años, 1 mes
Puntos: 3
Re

¿Quieres saber si todos los campos están vacíos? O algunos en particular.

Para todos a la vez puedes hacer del $_POST un array. Algo así:
Código PHP:
if(empty($_POST[])){
Tal cosa
} else {
atl otra

Sino:

Código PHP:
if(empty($Variable_que_te_interesa)){
Tal cosa
} else {
Tal otra

También para el último caso, de variables especificas, puedes usar el ELSEIF.

Saludos.
  #3 (permalink)  
Antiguo 21/11/2006, 13:39
 
Fecha de Ingreso: septiembre-2006
Ubicación: Montevideo
Mensajes: 46
Antigüedad: 17 años, 7 meses
Puntos: 1
Gracias por la respuesta pero el código sigue sin funcionar

if(empty($_POST[])){
Tal cosa
} else {
atl otra
}

El código anterior me produce el sig. error:
Fatal error: Cannot use [] for reading in D:\AppServ\www\COMITA\miarchivo.php

Tengo entendido que el $_POST es ya un array.
  #4 (permalink)  
Antiguo 21/11/2006, 13:45
 
Fecha de Ingreso: julio-2005
Mensajes: 86
Antigüedad: 18 años, 9 meses
Puntos: 3
Valida solo los campos, con el nombre que tiene el input :S no te intentes buscar soluciones porque por mucho que quieras $_POST nunca estará vacio si tu tienes un form. Te digo que no estara vacio porque siempre te dara el array asi "busqueda => """ Así que valida todos y cada uno de los inputs, por ejemplo:
<input name="ja" value="aqui la busqueda">

usa empty($_POST['ja'])...
No intentes ahorrarte trabajo porque solo haces alargarlo.
  #5 (permalink)  
Antiguo 21/11/2006, 14:23
 
Fecha de Ingreso: septiembre-2006
Ubicación: Montevideo
Mensajes: 46
Antigüedad: 17 años, 7 meses
Puntos: 1
De acuerdo

Cita:
Iniciado por hebo Ver Mensaje

No intentes ahorrarte trabajo porque solo haces alargarlo.
Es verdad tengo que preguntar por todos,
igual me llama la atencion que el array post no tenga ademas de los indices asociativos tambien indices numericos.

es mucho mas facil hacer un while con un contador que tener que escribir en un if todas las claves.

Para que quede un poco mas claro.

$contador = 0;
while(empty($_POST[$contador])){
$contador++;
}

despues pregunto si el contador es 0, y tendria el problema resuelto. De la otra forma tengo que hacer:

if (empty($_POST['nombre']) && empty($_POST['apellido']) &&......){
//lo q quiera hacer
}

De cualquier manera ya solucione el problema :D
Gracias por las respuestas, igual una opinion con respecto a este post se aprecia.
Saludos
  #6 (permalink)  
Antiguo 21/11/2006, 14:30
Avatar de seyacat  
Fecha de Ingreso: agosto-2006
Mensajes: 382
Antigüedad: 17 años, 8 meses
Puntos: 0
if(empty($_POST[])){
Tal cosa
} else {
atl otra
}

ponlo asi

if(empty($_POST)){
Tal cosa
} else {
atl otra
}
  #7 (permalink)  
Antiguo 21/11/2006, 14:32
Avatar de seyacat  
Fecha de Ingreso: agosto-2006
Mensajes: 382
Antigüedad: 17 años, 8 meses
Puntos: 0
Tambien te funciona mut bien asi

foreach($_POST as $p){
if(!empty($p) ){
$error=1;
break;
}
}
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:53.