Autor
|
Tema: Alguien conoce una funcion haci (Leído 3,754 veces)
|
mark182
|
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.
|
|
|
En línea
|
|
|
|
Erik#
Desconectado
Mensajes: 1.138
Gundam
|
Para eso esta: if(eregi('€', $_GET['frase'])){ echo "No valido, contiene el caracter €"; }else{ // tu code }
Informate en php.net de la función EREGI.
|
|
« Última modificación: 26 Julio 2009, 23:55 pm por Erik# »
|
En línea
|
|
|
|
Erik#
Desconectado
Mensajes: 1.138
Gundam
|
Doble post: lo hago para que me leas esto: Tambien puedes usar expresiones regulares if(eregi(^ [A -Za -z0 -9]{1,}$ ,$_GET['palabra'])){ echo "Correcto"; }else{ echo "Incorrecto"; }
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.
|
|
|
En línea
|
|
|
|
mark182
|
Lo voy a probar...muchas gracias.
|
|
|
En línea
|
|
|
|
mark182
|
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.
|
|
|
En línea
|
|
|
|
[u]nsigned
Desconectado
Mensajes: 2.397
JS/Node developer
|
Tenés errores en los condicionales.. else { if (ereg("^[a-zA-Z0-9\-_]{4}$", $usuario)) {}
Esa linea, por ejemplo... Debes anidar los If-Else o usar switch Saludos
|
|
|
En línea
|
No hay atajo ante la duda, el misterio se hace aquí... Se hace carne en cada uno, el misterio es existir!
|
|
|
Erik#
Desconectado
Mensajes: 1.138
Gundam
|
Unsigned tiene razón, la sintax del else if es: }elseif(...){
|
|
|
En línea
|
|
|
|
mark182
|
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.
|
|
|
En línea
|
|
|
|
Erik#
Desconectado
Mensajes: 1.138
Gundam
|
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 ...
|
|
|
En línea
|
|
|
|
SnakeDrak
Desconectado
Mensajes: 243
[GPG: 0x9680A09E]
|
Hola, Usa mejor preg_match, PCRE está mucho mejor. if(!preg_match('/^[a-zA-Z!\?\d_\-]{4,23}$/',$_POST['user'])) // Comprobamos carácteres $error .= "* El usuario contiene caracteres no permitidos<br/>"; else noerror;
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!
|
|
« Última modificación: 27 Julio 2009, 17:38 pm por SnakeDrak »
|
En línea
|
|
|
|
|
|