Ver Mensaje Individual
  #1 (permalink)  
Antiguo 27/07/2012, 04:30
Avatar de patilanz
patilanz
 
Fecha de Ingreso: enero-2012
Mensajes: 880
Antigüedad: 12 años, 3 meses
Puntos: 29
Exclamación Funcion no devuelve los errores

Hola tengo una funcion que tiene que devolver me errores y es esta :

Código PHP:
Ver original
  1. function elimina_acentos($cadena){
  2. $tofind = "ÀÁÂÃÄÅàáâãäåÒÓÔÕÖØòóôõöøÈÉÊËèéêëÇçÌÍÎÏìíîïÙÚÛÜùúûüÿÑñ";
  3. $replac = "AAAAAAaaaaaaOOOOOOooooooEEEEeeeeCcIIIIiiiiUUUUuuuuyNn";
  4. return(strtr($cadena,$tofind,$replac));
  5. }
  6. function error() {
  7.     $user = $_POST['user']; $pw = $_POST['pw']; $nombre = $_POST['nombre']; $apellidos = $_POST['apellidos']; $ano = $_POST['ano']; $pw2 = $_POST['pw2']; $mes = $_POST['mes'];
  8.     $dia = $_POST['dia']; $sexo = $_POST['sexo']; $email = $_POST['email']; $random = $_POST['oculto']; $numero = $_POST['oculto']; $humano = $_POST['humano']; $humano = strtolower($humano); $humano = elimina_acentos($humano);
  9.     $errores = array();
  10.     if(strlen($e['user']) < 6 && strlen($e['user']) > 30 ) {
  11.         $errores[1]  = '<font color="#FF0000">Usuario incorrecto(minimo 6 y maximo 18 caracteres</font>)';
  12.     }
  13.     if($pw == $pw2) {
  14.         if(strlen($pw) < 6 && strlen($pw) > 18) {
  15.             $errores[2] = '<font color="#FF0000">Contraseña incorrecta(minimo 6 y maximo 18 caracteres)</font>';
  16.         }
  17.     } else {
  18.         $errores[3] = '<font color="#FF0000">Comprueba las contraseñas!</font>';   
  19.     }
  20.     if(strlen($nombre) < 6 && strlen($nombre) > 30) {
  21.         $errores[4] = '<font color="#FF0000">Nombre incorrecto(minimo 6 i maximo 30 caracteres)</font>';   
  22.     }
  23.     if(strlen($apellidos) < 6 && strlen($apellidos) > 30) {
  24.         $errores[5] = '<font color="#FF0000">Apellidos incorrecto(minimo 6 i maximo 30 caracteres)</font>';
  25.     }
  26.     $hombre = 'hombre';
  27.     $mujer = 'mujer';
  28.     if($sexo != $hombre && $sexo != $mujer) {
  29.         $errores[6] = '<font color="#FF0000">Sexo incorrecto!</font>';
  30.     }
  31.     if(!preg_match("/^[^\s]+@([-a-z0-9]+\.)+[a-z]{2,}$/",$email)) {
  32.         $errores[7] = '<font color="#FF0000">Por favor escriba un email valido!</font>';
  33.     }
  34.     if($numero == 1) {
  35.         $respuesta = 'cristobal colon';
  36.     } elseif($numero == 2) {
  37.         $respuesta = '10';
  38.     } elseif($numero == 3) {$respuesta = '21';
  39.     } elseif($numero == 4) {$respuesta = '1492';
  40.     } elseif($numero == 5) {$respuesta = '2012';
  41.     } elseif($numero == 6) {$respuesta = 'si';
  42.     } elseif($numero == 7) {$respuesta = '20';
  43.     } elseif($numero == 8) {$respuesta = '6';
  44.     } elseif($numero == 9) {$respuesta = '2009';
  45.     } elseif($numero == 10) {$respuesta = 'hello';
  46.     } else {$respuesta = 'ERROR';}
  47.     if ($respuesta != $humano) {
  48.         $errores[8] = '<font color="#FF0000">Respuesta incorrecta!';
  49.     }
  50.     $ano_seguridad = array('1920','1921','1922','1923','1924','1925','1926','1927','1928','1929','1930','1931','1932','1933','1934','1935','1936','1937','1938','1939','1940','1941','1942','1943','1944','1945','1946','1947','1948','1949','1950','1951','1952','1953','1954','1955','1956','1957','1958','1959','1960','1961','1962','1963','1964','1965','1966','1967','1968','1968','1969','1970','1971','1972','1973','1974','1975','1976','1977','1978','1979','1980','1981','1982','1983','1984','1985','1986','1987','1988','1989','1990','1991','1992','1993','1994','1995','1996','1996','1997','1998','1999','2000','2001','2002','2003','2004','2005');
  51.     $mes_seguridad = array('1','2','3','4','5','6','7','8','9','10','11','12');
  52.     $dia_seguridad = array('1','2','3','4','5','6','7','8','9','10','11','12','13','14','15','16','17','18','19','20','21','22','23','24','25','26','27','28','29','30','31');
  53.    
  54.     if(!in_array($ano,$ano_seguridad)) {$errores[9] = 'A&ntilde;o incorrectisimo!';}
  55.     if(!in_array($mes,$mes_seguridad)) {$errores[10] = 'Mes incorrectisimo!'; }
  56.     if(!in_array($dia,$dia_seguridad)) {$errores[11] = 'Dia incorrectisimo!'; }
  57.     return $errores;
  58. }

Yengo mas codigo fuera de la funcion pero supera los 10000 caracteres.
La funcion no funciona correctamente porque solo me devuelve el error del email y de la respuesta != humano. Los demas no me los imprime con implode :


Código PHP:
Ver original
  1. <table width="394" border="1" align="center">
  2.   <tr>
  3.     <td><ul><li>';
  4.     print implode('</li><li>',error());
  5.  print '</li></ul></td></tr>
  6. </table>

Como solucionar lo?

Gracias :)