Foros del Web » Programando para Internet » PHP »

[SOLUCIONADO] Comprobar usuario de BD aparte del mismo usuario activo

Estas en el tema de Comprobar usuario de BD aparte del mismo usuario activo en el foro de PHP en Foros del Web. hola gente lnda de forosdelweb!! en esta ocasion estuve investigando mucho, no soy experto en php, pero me se defender un poco, paso a comentarles ...
  #1 (permalink)  
Antiguo 04/09/2012, 08:51
 
Fecha de Ingreso: mayo-2012
Mensajes: 26
Antigüedad: 12 años
Puntos: 2
Mensaje Comprobar usuario de BD aparte del mismo usuario activo

hola gente lnda de forosdelweb!!

en esta ocasion estuve investigando mucho, no soy experto en php, pero me se defender un poco, paso a comentarles el problema...

Resulta tengo una base de datos de usuarios, y cuando un usuario ingresa y quiere cambiar su nombre de usuario, me permite que tenga el mismo nombre q otro usuario, de todas maneras igual no puede entrar al contenido del otro, por q tiene diferente ID, pero como puedo arreglar esto? osea q cuando uno cambie su nombre de usuario no sea igual a otro en la base de datos..

alguno de los articulos q he visto es por ejemplo este:

¿Cómo evitar guardar registros duplicados en mi BD?
http://www.forosdelweb.com/1204551-post154.html

pero me sive y perfectamente para registrar nuevos usuarios.

probe modificando el codigo, les muestro a continuacion el php (el action al cual va el formulario de cambio de nombre de usuario y contraseña)

Código PHP:
Ver original
  1. <?php
  2.  
  3. //me conecto a la base de datos obviamente. :D
  4.  
  5. //coloco en nombre de usuario de la session iniciada
  6. $n_usuario_activo =  $_SESSION["username_usuario"];
  7.  
  8. // Recibo el dato del formulario
  9. $n_usuario= $_POST['username'];
  10.    
  11. // Hago la consulta a la BD por el usuario
  12. $ssql= mysql_query("SELECT username FROM usuarios WHERE username='$n_usuario'");
  13.  
  14. //lo listo
  15. $usuario_encontrado = mysql_fetch_array($ssql);
  16.  
  17. //el nombre del usuario encontrado lo coloco en una variable
  18. $usernameBD = $usuario_encontrado["username"];
  19.  
  20. //me fijo si hubo coincidencias
  21.         if(mysql_num_rows($ssql)>0) {  
  22.               // redirigo a:
  23.               header ("location: ../../error.1");
  24.        
  25.                 //me fijo si coincide con el de session        
  26.         }elseif($usernameBD == $n_usuario_activo){
  27.  
  28.                 //si es q existe entonces actualizo la contraseña
  29.  
  30.                 $ssql = "UPDATE usuarios set ";
  31.                 $ssql .= "password='" . md5($_POST["password"]) . "'";
  32.                 $ssql .= "where id=" . $_POST["id"];
  33.                
  34.                 if(mysql_query($ssql)){
  35.                     header ("location: ../../administ/perfil/succefull");
  36.                    
  37.                 }else{
  38.                     header ("location: ../../administ/perfil/error");  
  39.                 }
  40.  
  41.               //sino actualizo los dos datos usuario y contraseña      
  42.         }else{
  43.  
  44.                 $ssql = "UPDATE usuarios set ";
  45.                 $ssql .= "username='" . $_POST["username"] . "', ";
  46.                 $ssql .= "password='" . md5($_POST["password"]) . "'";
  47.                 $ssql .= "where id=" . $_POST["id"];
  48.                
  49.                 if(mysql_query($ssql)){
  50.                     header ("location: ../../administ/perfil/succefull");
  51.                    
  52.                 }else{
  53.                     header ("location: ../../administ/perfil/error");  
  54.                 }
  55.  
  56.         }
  57.    
  58. ?>

en el ejemplo anterior probe con los datos guardado en la session, tal vez no es lo correcto, pero me da error, osea el error es q no pasa del primer if.. (error.1) osea como q no puedo actualizar el nombre de usuario por q es el mismo.

si me pueden ayudar con esto, desde ya gracias, espero sus respuesta de conocimiento.
  #2 (permalink)  
Antiguo 04/09/2012, 09:02
 
Fecha de Ingreso: abril-2012
Mensajes: 590
Antigüedad: 12 años
Puntos: 58
Respuesta: Comprobar usuario de BD aparte del mismo usuario activo

Así sin ver el resto te diré que para poder usar $_SESSION tienes que iniciar la sesión antes, arriba de todo. session_start();
  #3 (permalink)  
Antiguo 04/09/2012, 09:06
 
Fecha de Ingreso: mayo-2012
Mensajes: 26
Antigüedad: 12 años
Puntos: 2
Respuesta: Comprobar usuario de BD aparte del mismo usuario activo

hola alyciashape, se me olvido de especificar q cuando me conecto a la base de datos tbm inicio session, session_star(), lo tengo todo como funciones en un archivo php q lo cargo como include(), eso funciona bien,

gracias por el comentario
  #4 (permalink)  
Antiguo 04/09/2012, 09:30
Avatar de maycolalvarez
Colaborador
 
Fecha de Ingreso: julio-2008
Ubicación: Caracas
Mensajes: 12.120
Antigüedad: 15 años, 9 meses
Puntos: 1532
Respuesta: Comprobar usuario de BD aparte del mismo usuario activo

debes tener en cuenta que el nombre de usuario debe ser único, a parte del id, porque se supone que es algo que lo identifica como usuario único, el ID es interno, tuyo, el usuario no debe saber que ni existe.

lo que puedes hacer es tener 2 nombres, el nickname único para cada usuario, y el Nombre para mostrar, que puede ser el mismo entre varios usuarios, así como en twitter donde mi hashtag es @maycolalvarez, pero como Nombre de perfil tengo "Maycol Alvarez", existen miles con mi mismo nombre, pero yo soy el único con dicho hashtag
__________________
¡Por favor!: usa el highlight para mostrar código
El que busca, encuentra...
  #5 (permalink)  
Antiguo 04/09/2012, 09:36
 
Fecha de Ingreso: mayo-2012
Mensajes: 26
Antigüedad: 12 años
Puntos: 2
Respuesta: Comprobar usuario de BD aparte del mismo usuario activo

hola maycolalvarez; gracias por tu respuesta

es exactamente asi como dices q lo tengo, dentro del perfil del usuario tengo puesto nombre, entre otro datos, y aparte el username y password, dentro de la misma tabla de usuarios.

el tema q no puedo hacer que el usuario pueda cambiar su nombre de usuario, eso es lo que quisiera hacer, el nombre si lo pueden cambiar perfectamente, ya q lo tengo en otro formulario, saludos

Etiquetas: comprobacion, perfil, username, usuarios, verificacion
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 05:28.