Foros del Web » Programando para Internet » PHP »

Validar usuario

Estas en el tema de Validar usuario en el foro de PHP en Foros del Web. Buenas estoy haciendo mis primeras armas en php y estoy validando un usuario en un formulario de registro, function validateUserName($username){ //No cumple long minimos if ...
  #1 (permalink)  
Antiguo 29/01/2012, 07:37
Avatar de fvz676fvz  
Fecha de Ingreso: junio-2011
Mensajes: 24
Antigüedad: 12 años, 9 meses
Puntos: 1
Pregunta Validar usuario

Buenas estoy haciendo mis primeras armas en php y estoy validando un usuario en un formulario de registro,

function validateUserName($username){
//No cumple long minimos
if (strlen($username)<5) return false;
//Minimo ok pero caracteres no ok
else if (!preg_match("/^[a-zA-Z0-9]+$/",$username)) return false;
//Todo ok
else
return true;
}
El tema es que cuando escribo cuatro letras ya no me devuelve el error y yo puse que deberia ser mayor de 5, y lo otro es que no me reconoce como validos los numeros, desde ya muchas gracias
  #2 (permalink)  
Antiguo 29/01/2012, 10:02
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años
Puntos: 2534
Respuesta: Validar usuario

Pues a saber como lo usar, pues hago esto:
Código PHP:
var_dump(validateUserName('abcd')); 
Y evidentemente me devuelve FALSE.
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #3 (permalink)  
Antiguo 29/01/2012, 10:14
Avatar de cuasatar  
Fecha de Ingreso: junio-2011
Ubicación: Bogotá Rock City
Mensajes: 1.230
Antigüedad: 12 años, 10 meses
Puntos: 181
Respuesta: Validar usuario

Cita:
function validateUserName($username){
//No cumple long minimos
if (strlen($username)<5) return false;
//Minimo ok pero caracteres no ok
else if (!preg_match("/^[a-zA-Z0-9]+$/",$username)) return false;
//Todo ok
else
return true;
}
Es cuestion de revisar un poco lo que estas haciendo. Si en la primera condición te retorna falso ya no es necesario que revises mas opciones. Si te retorna verdadero ahi si ya debes verificar que coincida con tu patron. Tal como lo tienes ahora el sigue evaluando la siguiente condición sin importar la respuesta anterior.
__________________
Blog de humor http://elcuasatar.net63.net/
  #4 (permalink)  
Antiguo 29/01/2012, 10:20
Avatar de andresdzphp
Colaborador
 
Fecha de Ingreso: julio-2011
Ubicación: $this->Colombia;
Mensajes: 2.749
Antigüedad: 12 años, 9 meses
Puntos: 793
Respuesta: Validar usuario

Cita:
Iniciado por fvz676fvz Ver Mensaje

if (strlen($username)<5) return false;

El tema es que cuando escribo cuatro letras ya no me devuelve el error y yo puse que deberia ser mayor de 5, y lo otro es que no me reconoce como validos los numeros, desde ya muchas gracias
Colocaste que sea menor que 5...

< menor que
> mayor que
<= menor o igual que
>= mayor o igual que
__________________
Si sabemos como leer e interpretar el manual será mucho más fácil aprender PHP. En lugar de confiar en ejemplos o copiar y pegar - PHP
  #5 (permalink)  
Antiguo 29/01/2012, 10:34
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años
Puntos: 2534
Respuesta: Validar usuario

Cita:
Iniciado por andresdzphp Ver Mensaje
Colocaste que sea menor que 5...

< menor que
> mayor que
<= menor o igual que
>= mayor o igual que
Si, pero si es menor que 5 es falso.

Es decir que cualquier longitud superior a 5 es verdadera.
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #6 (permalink)  
Antiguo 29/01/2012, 10:36
Avatar de andresdzphp
Colaborador
 
Fecha de Ingreso: julio-2011
Ubicación: $this->Colombia;
Mensajes: 2.749
Antigüedad: 12 años, 9 meses
Puntos: 793
Respuesta: Validar usuario

Cita:
Iniciado por pateketrueke Ver Mensaje
Si, pero si es menor que 5 es falso.

Es decir que cualquier longitud superior a 5 es verdadera.
lo sé, hay que hacerlo en la misma expresión regular
__________________
Si sabemos como leer e interpretar el manual será mucho más fácil aprender PHP. En lugar de confiar en ejemplos o copiar y pegar - PHP
  #7 (permalink)  
Antiguo 29/01/2012, 10:43
Avatar de cuasatar  
Fecha de Ingreso: junio-2011
Ubicación: Bogotá Rock City
Mensajes: 1.230
Antigüedad: 12 años, 10 meses
Puntos: 181
Respuesta: Validar usuario

En la expresión regular debes poner entres corchetes el número minimo de ocurrencias y el número máximo:

{numero minimo,numero maximo}

Si el número minimo es indeterminado se puede dejar el espacio en blanco.
__________________
Blog de humor http://elcuasatar.net63.net/
  #8 (permalink)  
Antiguo 29/01/2012, 13:32
Avatar de fvz676fvz  
Fecha de Ingreso: junio-2011
Mensajes: 24
Antigüedad: 12 años, 9 meses
Puntos: 1
Respuesta: Validar usuario

Si puse menor que 5 y deberia de funcionar bien pero el hecho es que si pongo en el formulario 3 me da error, pero cuando pongo 4 ya no me da mas error y me manda el formulario, gracias saludos
  #9 (permalink)  
Antiguo 29/01/2012, 14:15
Avatar de andresdzphp
Colaborador
 
Fecha de Ingreso: julio-2011
Ubicación: $this->Colombia;
Mensajes: 2.749
Antigüedad: 12 años, 9 meses
Puntos: 793
Respuesta: Validar usuario

porque al hacer un return retorna false y ya no llega a la segunda comprobación, debes hacer todo en la misma expresión regular o sino organizar la lógica de tu función de modo que se pueda pasar por todos los condicionales.

Si quieres aprender de expresiones regulares:

http://www.forosdelweb.com/f18/aport...s-pcre-646110/

Si quieres entender las funciones:

Cita:
Los valores son devueltos usando la sentencia opcional return. Se puede devolver cualquier tipo, incluidos arrays y objetos. Esto causa que la función finalice su ejecución inmediatamente y pase el control de nuevo a la línea desde la que fue llamada.
http://www.php.net/manual/es/functio...ing-values.php

Saludos.
__________________
Si sabemos como leer e interpretar el manual será mucho más fácil aprender PHP. En lugar de confiar en ejemplos o copiar y pegar - PHP
  #10 (permalink)  
Antiguo 29/01/2012, 14:23
Avatar de fvz676fvz  
Fecha de Ingreso: junio-2011
Mensajes: 24
Antigüedad: 12 años, 9 meses
Puntos: 1
Respuesta: Validar usuario

Gracias por el aporte, ahora a leer un rato más.

Etiquetas: formulario, registro, usuarios
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 00:11.