Foros del Web » Programando para Internet » PHP »

Sistema de usuarios

Estas en el tema de Sistema de usuarios en el foro de PHP en Foros del Web. Hola compañeros de foro, estoy creando el sistema típico donde los usuarios se dan de alta, no puede haber nombres iguales, nombres ya usados etc. ...
  #1 (permalink)  
Antiguo 22/09/2011, 16:32
 
Fecha de Ingreso: enero-2010
Mensajes: 389
Antigüedad: 14 años, 3 meses
Puntos: 4
Sistema de usuarios

Hola compañeros de foro,

estoy creando el sistema típico donde los usuarios se dan de alta, no puede haber nombres iguales, nombres ya usados etc.

Mi pregunta si es la función strcasecmp la que se usa para comparar los nombres de usuarios y de que manera mas eficaz se comprueba si el nombre está en uso, he pensado cargando todos los nombres en un array y comprobar posteriormente con strcasecmp si hay coincidencias pero os pregunto si es el método mas eficaz y rápido.

También tengo la duda si usar el campo nombre de usuario como id único o si solo con poner id usuario como auto incremental es válido.

Un saludo
  #2 (permalink)  
Antiguo 22/09/2011, 16:38
Avatar de andresdzphp
Colaborador
 
Fecha de Ingreso: julio-2011
Ubicación: $this->Colombia;
Mensajes: 2.749
Antigüedad: 12 años, 8 meses
Puntos: 793
Respuesta: Sistema de usuarios

Para eso se usan las llaves primarias en la base de datos donde no se pueden repetir los nombres de usuario o se hace una comprobación primero si el usuario existe o no. (o ambas cosas) No entiendo para que usar strcasecmp. 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
  #3 (permalink)  
Antiguo 22/09/2011, 16:39
Avatar de PIRRUMAN  
Fecha de Ingreso: febrero-2006
Ubicación: Monterrey, Nuevo León
Mensajes: 633
Antigüedad: 18 años, 2 meses
Puntos: 53
Respuesta: Sistema de usuarios

pues busca en tu base de datos si alguien tiene ese mismo nombre
algo asi
Cita:

$SQLUser = " Select * FROM tblEmpleado Where chrNomUsuario = '$txtuser';";
$resUser = mysql_query ($SQLUser);

if (mysql_fetch_array($resUser)!="")
{
insertar usuario
}
else
{
usuario existente
}
donde $txtuser es la variable de tu campo de texto
__________________
“Prefiero ser un tonto momentaneo que un eterno ignorante”
“¡El éxito es resultado de los aciertos,los aciertos resultado de la experiencia y la experiencia resultado de los errores!”
  #4 (permalink)  
Antiguo 22/09/2011, 17:12
 
Fecha de Ingreso: enero-2010
Mensajes: 389
Antigüedad: 14 años, 3 meses
Puntos: 4
Respuesta: Sistema de usuarios

andresdzphp ¿usar el id como auto incremental sin ser primary y el nombre como primary?

Esa función sería para comprobar que la cadena como explique aunque de la forma que expone PIRRUMAN es mucho mas eficaz y rápido ;)
  #5 (permalink)  
Antiguo 22/09/2011, 17:15
Avatar de andresdzphp
Colaborador
 
Fecha de Ingreso: julio-2011
Ubicación: $this->Colombia;
Mensajes: 2.749
Antigüedad: 12 años, 8 meses
Puntos: 793
Respuesta: Sistema de usuarios

Si usas el nombre como primary key, la base de datos no va a dejar insertar un nombre de usuario repetido, arroja un error si ya existe que puedes controlar. En lo segundo que dije es exactamente lo que hizo PIRRUMAN. 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
  #6 (permalink)  
Antiguo 22/09/2011, 17:25
 
Fecha de Ingreso: enero-2010
Mensajes: 389
Antigüedad: 14 años, 3 meses
Puntos: 4
Respuesta: Sistema de usuarios

gracias ;)
  #7 (permalink)  
Antiguo 22/09/2011, 17:55
 
Fecha de Ingreso: enero-2010
Mensajes: 389
Antigüedad: 14 años, 3 meses
Puntos: 4
Respuesta: Sistema de usuarios

andresdzphp MySQL no permite definir un campo no auto incremental como primary key, este es el cófigo que devuelve
Cita:
#1075 - Incorrect table definition; there can be only one auto column and it must be defined as a key
  #8 (permalink)  
Antiguo 22/09/2011, 18:02
Avatar de andresdzphp
Colaborador
 
Fecha de Ingreso: julio-2011
Ubicación: $this->Colombia;
Mensajes: 2.749
Antigüedad: 12 años, 8 meses
Puntos: 793
Respuesta: Sistema de usuarios

Ese no es el error... No tiene nada que ver si es auto increment o no. El error dice que sólo puede haber un auto increment y debe ser definido como una key.

Cita:
MySQL no permite definir un campo no auto incremental como primary key
¿Estás seguro?
__________________
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
  #9 (permalink)  
Antiguo 22/09/2011, 18:07
 
Fecha de Ingreso: enero-2010
Mensajes: 389
Antigüedad: 14 años, 3 meses
Puntos: 4
Respuesta: Sistema de usuarios

¿de ser así no puedo tener un campo id_usuario cierto? MySQL no me va a auto incrementar los id automaticamente
  #10 (permalink)  
Antiguo 22/09/2011, 18:09
 
Fecha de Ingreso: enero-2010
Mensajes: 389
Antigüedad: 14 años, 3 meses
Puntos: 4
Respuesta: Sistema de usuarios

fianlmente he dejado el campo id como auto_incremente y primary y el nombre de usuario como unique
  #11 (permalink)  
Antiguo 22/09/2011, 18:11
Avatar de andresdzphp
Colaborador
 
Fecha de Ingreso: julio-2011
Ubicación: $this->Colombia;
Mensajes: 2.749
Antigüedad: 12 años, 8 meses
Puntos: 793
Respuesta: Sistema de usuarios

queda hacer la prueba a ver que pasa cuando intentas con uno repetido. 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
  #12 (permalink)  
Antiguo 22/09/2011, 18:29
 
Fecha de Ingreso: enero-2010
Mensajes: 389
Antigüedad: 14 años, 3 meses
Puntos: 4
Respuesta: Sistema de usuarios

error al introducir un nombre de usuario ya insertado ;)

Etiquetas: sistema, 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 21:55.