Ver Mensaje Individual
  #1 (permalink)  
Antiguo 02/09/2014, 15:53
luchi2
 
Fecha de Ingreso: agosto-2014
Mensajes: 31
Antigüedad: 9 años, 8 meses
Puntos: 0
Validación de formularios

Hola gente.
La validación la hago primero al lado del cliente, y si el cliente no tiene activado Javascript, utilizo PHP, el código es el siguiente:

Código PHP:
$usuario=trim(htmlentities(mysql_real_escape_string($_REQUEST['usuario'])));
                        
$contrasena=trim(htmlentities(mysql_real_escape_string($_REQUEST["contrasena"])));
                        
$email=trim(htmlentities(mysql_real_escape_string($_REQUEST["email"])));
                        
$nombre=trim(htmlentities(mysql_real_escape_string($_REQUEST["nombre"])));
                        
$apellidos=trim(htmlentities(mysql_real_escape_string($_REQUEST["apellidos"])));
                        
$direccion=trim(htmlentities(mysql_real_escape_string($_REQUEST["direccion"])));
                        
$provincia=trim(htmlentities(mysql_real_escape_string($_REQUEST["provincia"])));
                        
$poblacion=trim(htmlentities(mysql_real_escape_string($_REQUEST["poblacion"])));
                        
$cp=trim(htmlentities(mysql_real_escape_string($_REQUEST["cp"])));
                        
$telefono=trim(htmlentities(mysql_real_escape_string($_REQUEST["telefono"])));

//Declaramos un array que recoja los errores
$recoger_errores=array();

echo 
"<noscript>";
                        
//Ejecutamos la función validar con sus parámetros
validar($usuario$contrasena$email$nombre$apellidos$direccion$poblacion$cp$telefono);

                        
function 
validar($usuario$contrasena$email$nombre$apellidos$direccion$poblacion$cp$telefono){
/*Si algún usuario está en blanco, se añade el error al array*/
if($usuario=="" || $contrasena=="" || $email=="" || $nombre=="" || $apellidos="" || $direccion=="" || $poblacion="" || $cp="" || $telefono){
$recoger_errores[]="Debes completar todos los campos";
                            }

/*Esto mide la longitud de los números*/
if(strlen($cp)!=5){
$recoger_errores[]="El código postal deben ser 5 caracteres";
                            }

if(
strlen($telefono)!=9){
    
$recoger_errores[]="El teléfono deben ser 9 caracteres";
                            }

/*Esto se encarga de ver si se trata de un número entero*/
if(filter_var($cpFILTER_VALIDATE_INT)===false){
    
$recoger_errores[]="El codigo postal debe ser un número";
                            }

if(
filter_var($telefonoFILTER_VALIDATE_INT)===false){
    
$recoger_errores[]="El teléfono debe ser un número";
                            }

/*Finalemte le mostramos al usuario los errores recorriendo el array*/
                            
var_dump($recoger_errores);
                        }
echo 
"</noscript>"
Por supuesto, éste código no funciona, me da el error: "Fatal error: Call to undefined function validar() in C:\xampp\htdocs\Mi proyecto\registro.php on line 344
"
pero si llamo a la función antes de la última línea directamente no me la ejecuta y el usuario puede introducir datos erróneos tan campante.
¿Qué está fallando?.
Un saludo.