Foros del Web » Programando para Internet » PHP »

Funcion no devuelve los errores

Estas en el tema de Funcion no devuelve los errores en el foro de PHP en Foros del Web. Hola tengo una funcion que tiene que devolver me errores y es esta : @import url("http://static.forosdelweb.com/clientscript/vbulletin_css/geshi.css"); Código PHP: Ver original function elimina_acentos ( $cadena ) ...
  #1 (permalink)  
Antiguo 27/07/2012, 04:30
Avatar de patilanz  
Fecha de Ingreso: enero-2012
Mensajes: 880
Antigüedad: 12 años, 2 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 :)
  #2 (permalink)  
Antiguo 28/07/2012, 16:44
 
Fecha de Ingreso: enero-2010
Mensajes: 73
Antigüedad: 14 años, 1 mes
Puntos: 9
Respuesta: Funcion no devuelve los errores

Si no lo he leído mal, cometes el mismo error en casi todos los if.

Quieres comprobar que la longitud sea menor que un número Ó (||) mayor que otro, pero tu le estás poniendo Y (&&)

Un número nunca podrá ser menor que 6 y además, ser mayor que 18.
  #3 (permalink)  
Antiguo 29/07/2012, 12:49
Avatar de patilanz  
Fecha de Ingreso: enero-2012
Mensajes: 880
Antigüedad: 12 años, 2 meses
Puntos: 29
Respuesta: Funcion no devuelve los errores

Cita:
Iniciado por Hexplore Ver Mensaje
Si no lo he leído mal, cometes el mismo error en casi todos los if.

Quieres comprobar que la longitud sea menor que un número Ó (||) mayor que otro, pero tu le estás poniendo Y (&&)

Un número nunca podrá ser menor que 6 y además, ser mayor que 18.
Me lo pensaba lo mismo pero esq la verdad en otro programa me funciona asi y no tengo ni idea porque y por esto, gracias :) voy a probar si funciona

Etiquetas: funcion, funcion.php, php+formularios
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 02:45.