Título: Alguien conoce una funcion haci Publicado por: mark182 en 26 Julio 2009, 23:05 pm Hola que tal?
Recien empiezo con la programacion en PHP y la verdad que hay cosas que nose todavia, estoy haciendo un formulario y quiero controlar que el usuario no ingrese espacios en blancos o algunos caracteres, etc. Quiero que lo unico que pueden poner sean letras con numeros, o letras solas o numeros solos unicamente. Si el usuario llega a poner algo no permitido, que lo rechaze y vuelva a la pagina de registracion pero con el resto de los datos correctos ya puestos, y un mensaje de error en donde se haya equivocado el usuario. Espero que no sea mucho molestia. Se los agradezco mucho. Título: Re: Alguien conoce una funcion haci Publicado por: Erik# en 26 Julio 2009, 23:26 pm Para eso esta:
Código
Informate en php.net de la función EREGI. Título: Re: Alguien conoce una funcion haci Publicado por: Erik# en 27 Julio 2009, 00:00 am Doble post: lo hago para que me leas esto:
Tambien puedes usar expresiones regulares :P Código
En el eregi solo permitimos de la A a la Z y del 0 al 9, minusculas y mayusculas y por lo menos debe tener 1 caracter la frase. Donde $_GET[] introduce tu $_POST y el nombre. Y donde correcto e incorrecto lo que tu quieres hacer. Título: Re: Alguien conoce una funcion haci Publicado por: mark182 en 27 Julio 2009, 01:12 am Lo voy a probar...muchas gracias.
Título: Re: Alguien conoce una funcion haci Publicado por: mark182 en 27 Julio 2009, 02:47 am Mira...lo eh provado pero funciona a medias. Lo explico con la contraseña me funciona, osea, si el usuario pone un espacio a algun caracter que no sea letra o numero tira el mensaje de error. Pero con el usuario no me funciona, ya sea que ponga de forma correcta o con simbolos no permitidos, me sigue tirando el mensaje de error. Les dejo todo el codigo completo para que vean donde puede estar el error.
$numero=strlen($usuario); if ($numero < 4){ echo "El nombre de usuario $usuario no es válido. Debe contener como mínimo 4 caracateres<br>";} else { if (ereg("^[a-zA-Z0-9\-_]{4}$", $usuario)) {} else { echo "El nombre de Usuario es incorrecto. Solo se permiten letras, números, - y _<br>";}} $numero=strlen($pass); $numero2=strlen($cpass); if (($numero < 6) or ($numero2 < 6)){ echo "No ha ingresado la Contraseña correctamente. Debé contener 6 caracteres como mínimo y 8 como máximo<br>";} else { if (ereg("^[a-zA-Z0-9]{6,8}$", $pass)) {} else { echo "La Contraseña es incorrecta. Solo se permiten letras, números, - y _<br>";}} Que pueda estar pasando? Gracias. Título: Re: Alguien conoce una funcion haci Publicado por: [u]nsigned en 27 Julio 2009, 03:34 am Tenés errores en los condicionales.. :rolleyes:
Código Esa linea, por ejemplo... Debes anidar los If-Else o usar switch Saludos Título: Re: Alguien conoce una funcion haci Publicado por: Erik# en 27 Julio 2009, 10:10 am Unsigned tiene razón, la sintax del else if es:
Código
Título: Re: Alguien conoce una funcion haci Publicado por: mark182 en 27 Julio 2009, 14:00 pm pero justo abajo esta el else de ese if, igual ustedes dicen de poner elseif? Disculpen es que estoy medio acostumbrado al lenguaje C jeje. Lo provare, gracias.
Título: Re: Alguien conoce una funcion haci Publicado por: Erik# en 27 Julio 2009, 14:17 pm pero justo abajo esta el else de ese if, igual ustedes dicen de poner elseif? Disculpen es que estoy medio acostumbrado al lenguaje C jeje. Lo provare, gracias. El else if no se separa así: else } if ... Título: Re: Alguien conoce una funcion haci Publicado por: SnakeDrak en 27 Julio 2009, 17:26 pm Hola,
Usa mejor preg_match, PCRE (http://es.php.net/PCRE) está mucho mejor. Código
Ese es un ejemplo para comprobar caracteres ingleses del alfabeto inglés con ?, números, -, _ e ! incorporados que ha sido pasado por POST en user, es decir que si contiene algún caracter que no esté en ese alfabeto dará error, por ejemplo á. Suerte! Título: Re: Alguien conoce una funcion haci Publicado por: Erik# en 27 Julio 2009, 17:31 pm Esta muy bueno, es parecido al eregi o ereg.
Título: Re: Alguien conoce una funcion haci Publicado por: SnakeDrak en 27 Julio 2009, 17:41 pm Hola,
Sí pero es más flexible y mucho más rápido usar PCRE. Saludos! |