Foros del Web » Programando para Internet » PHP »

Validación de campos

Estas en el tema de Validación de campos en el foro de PHP en Foros del Web. Hola!!! bueno ayer puse este post http://www.forosdelweb.com/s3641c216...msg180331.html tenia lios con la validación de campos, buscaba una forma de hacerlo sin tanto if solo para verificar ...
  #1 (permalink)  
Antiguo 04/02/2004, 09:39
Avatar de Salome  
Fecha de Ingreso: noviembre-2002
Ubicación: Colombia
Mensajes: 1.032
Antigüedad: 21 años, 5 meses
Puntos: 1
Mensaje Validación de campos

Hola!!!

bueno ayer puse este post

http://www.forosdelweb.com/s3641c216...msg180331.html

tenia lios con la validación de campos, buscaba una forma de hacerlo sin tanto if solo para verificar si el campo estaba vacio o no.. ok, pues no esta fue la solución que le di y que quizas pueda ayudarle a alguien...

$varObligatorias = array("Campo1", "Campo2");

validarCampos($varObligatorias);

function validarCampos($varObligatorias)
{
for($i=0;$i<count($varObligatorias);$i++)
{
if($_POST[$varObligatorias[$i]] == "")
{
echo " Ingrese campo: ".$varObligatorias[$i];
}
}
}

ok, como ven cree un array con los nombres de los campos, luego hice una función a la que le llevo dicho array $varObligatorias, lo recorro y comparo con las variables que llegan por _POST y bueno imprimo el mensaje...

un saludo
  #2 (permalink)  
Antiguo 04/02/2004, 10:21
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 3 meses
Puntos: 129
Salomé ... En el mismo mensaje te dí esa solución .. que en lugar de usar un bucle for() usé un foreach() que vá mejor para recorrer arrays .. También usaba empty() en lugar de $var == ''. Eso sí .. tu lo has implementado como función (que de eso se trata .. de reusar el código lo más posible).

De igual forma .. ya que nos ponemos estaría bueno que la función devolviese un array con los elementos que no se ingresó nada .. como para poder "separar" el proceso (validación en este caso) de la presentación de los posibles mensajes de error que se tengan que emitir ... te animas?

Un saludo,
__________________
Por motivos personales ya no puedo estar con Uds. Fue grato haber compartido todos estos años. Igualmente los seguiré leyendo.
  #3 (permalink)  
Antiguo 04/02/2004, 10:24
Avatar de Salome  
Fecha de Ingreso: noviembre-2002
Ubicación: Colombia
Mensajes: 1.032
Antigüedad: 21 años, 5 meses
Puntos: 1
mmm pues si la idea es esa.. retornar y separar... pero ando como liada con lo de return....
  #4 (permalink)  
Antiguo 04/02/2004, 10:43
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 3 meses
Puntos: 129
Podría ser:

Código PHP:
<?
function ValidarCampos($metodo,$campos){
  
$faltan=array(); // iniciar array...
  
foreach ($campos as $campo){
     if (
empyt($metodo[$campo])){  
        
$faltan[]=$campo// a un array el campo que falte
   
}
 }
  return 
$faltan// se devuelve el array ...
}

$campos=array ("uno","dos","tres");
$metodo=$_POST// podría ser $HTTP_POST_VARS y afines ..  $_REQUEST ... etc ...

$faltan=ValidarCampos($metodo,$campos);

// Y se recorre el array que contendrá el nombre de los campos que falte .. 
foreach ($faltan as $campo){
       echo 
"Error Falta campo: ".$campo."<br>";
    }

?>
Un saludo,

PD: No lo he probado .. pero debería funcionar.
__________________
Por motivos personales ya no puedo estar con Uds. Fue grato haber compartido todos estos años. Igualmente los seguiré leyendo.

Última edición por Cluster; 04/02/2004 a las 10:47
  #5 (permalink)  
Antiguo 04/02/2004, 10:53
Avatar de Salome  
Fecha de Ingreso: noviembre-2002
Ubicación: Colombia
Mensajes: 1.032
Antigüedad: 21 años, 5 meses
Puntos: 1
ok.. funciona

en esta linea

if (empyt($metodo[$campo])){

ahi un error de digitación....

if (empty($metodo[$campo])){

y ya asi funciona perfecto...

un saludo y gracias
  #6 (permalink)  
Antiguo 04/02/2004, 10:58
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 3 meses
Puntos: 129
jeje .. es la sintax-dislexia xDD nunca acierto a escribir esa función xDD jeje. Por suerte suelo tener a mano la versión en CHM (Help de Windows) del manual oficial de PHP .. por si acaso xD jejeje.

Un saludo,
__________________
Por motivos personales ya no puedo estar con Uds. Fue grato haber compartido todos estos años. Igualmente los seguiré leyendo.
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:01.