Ver Mensaje Individual
  #1 (permalink)  
Antiguo 17/04/2012, 05:38
Avatar de JaimeMSE
JaimeMSE
 
Fecha de Ingreso: diciembre-2010
Ubicación: Isla Cristina (Huelva)
Mensajes: 164
Antigüedad: 13 años, 4 meses
Puntos: 7
Problema validando datos mediante PHP

Hola,

Llevo más de una hora dándole vueltas al tema y no consigo ver como lo puedo plantear.

Tengo un formulario en el que se especifican varias cosas que requieren algunas números, algunas letras, otras ambas, etc.

Por ejemplo, tengo dos campos:

Llamémosle campo1 y campo2. El campo1 es un checkbox, que si no está seleccionado debería mandar 0. Por tanto, para validar el campo1 debería de:

Código PHP:
Ver original
  1. function validarCampo1($campo1) {
  2.    
  3.     if(strlen($campo1) > 1) {
  4.         return false;
  5.     }
  6.    
  7.     elseif(!preg_match("/^[0-1]+$/", $campo1)) {
  8.         return false;
  9.     }
  10.    
  11.     else {
  12.         return true;
  13.     }
  14.    
  15. }

Eso lo tengo en un archivo llamado validaciones.php, luego lo llamo así:

Código PHP:
Ver original
  1. if(isset($enviar)) {
  2.                 if(!validarCampo1($campo1)) {
  3.                     $campo1 = "error";
  4.                 }

Luego compruebo que no existan errores:

Código PHP:
Ver original
  1. if($campo1 != "error" && $campo2 != "error"...

El problema tengo en que, en el campo1 que es un checkbox, se queda la variable en error en vez de poner un 0 si no se selecciona. ¿A qué se puede deber?

Luego he pensado en poner en el campo2 que sería letras+números algo así:

Código PHP:
Ver original
  1. function validar campo2 ($campo2) {
  2.    
  3.     if(isset($campo2 )) {
  4.    
  5.         if(!preg_match("/^[0-1]+$/", $campo2 )) {
  6.             return false;
  7.         }
  8.        
  9.         else {
  10.             return true;
  11.         }
  12.     }
  13.    
  14.     else {
  15.         $campo2  = '';
  16.     }
  17. }

El problema es que el campo2 puede estar vacío. Pero no sé como hacer que si los carácteres que ha introducido no son correctos, salga error, y si se queda vacía, no se inserte en la base de datos, o sea, se inserte en blanco.

Gracias y perdón por el tostón de texto.
__________________
@JaimeMSE - ¡Sígueme!