Ver Mensaje Individual
  #1 (permalink)  
Antiguo 04/09/2012, 08:51
markos22
 
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.