Foros del Web » Programando para Internet » PHP »

modificar contraseña de un usuario

Estas en el tema de modificar contraseña de un usuario en el foro de PHP en Foros del Web. ¡Hola! que tal? tengo un problemilla que por mas vueltas que le doy, no consigo saber pork m ocurre esto. Me explico: estoy haciendo una ...
  #1 (permalink)  
Antiguo 10/02/2010, 10:43
Avatar de andmai  
Fecha de Ingreso: enero-2010
Mensajes: 84
Antigüedad: 14 años, 3 meses
Puntos: 1
modificar contraseña de un usuario

¡Hola! que tal?
tengo un problemilla que por mas vueltas que le doy, no consigo saber pork m ocurre esto. Me explico:
estoy haciendo una página en la que el usuario se registra introduciendo su nombre, email y contraseña. Una vez registrado y que esté dentro, existe la posibilidad de que modifique sus datos, pero solo me deja modificar el nombre, es decir, si se modifica el email o la contraseña sin modificar el nombre, dice que el usuario ya existe. Debe de ser alguna tonteria que se me escapa pero no consigo dar con ella. Dejo el código por si alguien me puede ayudar. Muchisimas gracias


modificarPerfil.php




<? session_start(); // incio de uso de sesiones. Necesario cada vez que se lean o guarden variables de sesión. ?>


<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>
Modificar Perfil
</title>
</head>
<link rel="stylesheet" type="text/css" href="estilos.css"/>
<body>
<p class="tituloInicio">Modificar Perfil</p>
<?

$nombre= $_SESSION['nombre'];//Nombre antiguo del usuario

//se conecta con la BD
$link = mysql_connect('localhost', 'root');
if (!$link)
{echo " no se puede conectar";}

mysql_select_db("DatosConfiguraciones",$link);

$consulta= "SELECT idPerfil FROM perfil WHERE nombre= '$nombre' ";
$rdo=mysql_query($consulta,$link);
$row= mysql_fetch_row($rdo);//pasar el resultado a la variable
$_SESSION['idAntiguo']="$row[0]";


$consulta3= "SELECT clave FROM perfil WHERE nombre= '$nombre' ";
$rdo3=mysql_query($consulta3,$link);
$row3= mysql_fetch_row($rdo3);//pasar el resultado a la variable
$clave= "$row3[0]";


$consulta2= "SELECT email FROM perfil WHERE nombre= '$nombre' ";
$rdo2=mysql_query($consulta2,$link);
$linea= mysql_fetch_row($rdo2);//pasar el resultado a la variable
$email="$linea[0]";


?>

<form method="post" >
<p class="titulo1">modifica tus datos:</p>
<p class="textoAuxi">nombre:</p>
<input type="text" name="nombre" size="20" class="posicionCaja" value="<? echo "$nombre"; ?>" >
<br>
<br>
<p class="textoAuxi">contraseña:</p>
<input type="password" name="contraseña" size="20" class="posicionCaja" value="<? echo "$clave"; ?>">
<br>
<br>
<p class="textoAuxi">email:</p>
<input type="text" name="email" size="40" class="posicionCaja" value=" <? echo "$email"; ?>">
<br>
<input type="submit" name="boton1" class="botonP" value="Aceptar" onclick=this.form.action='modificarDatos.php'>
<input type="reset" name="boton2" class="botonP" value= "Borrar">
<input class="botonP" type="submit" value="Atras" onclick=this.form.action='perfilPersonal.php'>
</form>
</body>
</html>






modificarDatos.php

<? session_start(); // incio de uso de sesiones. ?>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Perfil Creado</title>
</head>
<link rel="stylesheet" type="text/css" href="estilos.css"/>
<body>

<?
//se conecta con la BD
$link = mysql_connect('localhost', 'root');
if (!$link)
{echo " no se puede conectar";}
mysql_select_db("DatosConfiguraciones",$link);

$viejo=$_SESSION['idAntiguo']; // asignamos a $viejo la variable de la session áctiva.

$nombreNew=$_POST["nombre"];
$passNew=$_POST["contraseña"];
$emailNew=$_POST["email"];

$consulta= "SELECT * FROM perfil WHERE nombre='$nombreNew'";
$rdo2=mysql_query($consulta,$link);

if(mysql_num_rows($rdo2)>0){
echo "<p class=textoAuxi>Este perfil ya existe</p>";
echo"<form method=post>";
echo"<input class=botonSeleccion type=submit value=Volver onClick=this.form.action='modificarPerfil.php'>";
echo " </form>";
}
else {
$sql="UPDATE perfil SET nombre='$nombreNew' , clave='$passNew' , email= '$emailNew' WHERE idPerfil='$viejo'";
$rdo= mysql_query ($sql,$link);
echo "<p class=textoAuxi>La modificación se ha realizado con éxito</p>";
echo"<form method=post>";
echo"<input class=botonSeleccion type=submit value=Atras onClick=this.form.action='perfil.php'>";
echo " </form>";
}
?>
</body>
</html>
  #2 (permalink)  
Antiguo 10/02/2010, 10:49
Avatar de zeuslife  
Fecha de Ingreso: enero-2008
Ubicación: Madrid
Mensajes: 533
Antigüedad: 16 años, 3 meses
Puntos: 11
Respuesta: modificar contraseña de un usuario

Claro hombre!
Lo primero, no se porque haces varios SELECT para sacar datos de una misma tabla... metelos todos en uno solo! Y segundo. Si, el usuario no cambia su nombre, al hacel el SELECT, encuentra que existe y por lo tanto no le deja modificar. Tendrás que comprobar si ese nombre de usuario corresponde con su id, si es así, bien, sino, lo dices que ese user ya existe :)

Saludos!
__________________
Neversyn Software e Ingeniería
  #3 (permalink)  
Antiguo 10/02/2010, 11:15
Avatar de andmai  
Fecha de Ingreso: enero-2010
Mensajes: 84
Antigüedad: 14 años, 3 meses
Puntos: 1
Respuesta: modificar contraseña de un usuario

Muchas gracias zeuslife. Hago varios select pork sino no se como meter el valor de cada columnan en la variable que yo quiero....
  #4 (permalink)  
Antiguo 10/02/2010, 11:21
Avatar de zeuslife  
Fecha de Ingreso: enero-2008
Ubicación: Madrid
Mensajes: 533
Antigüedad: 16 años, 3 meses
Puntos: 11
Respuesta: modificar contraseña de un usuario

Nada =) Pues mira, haces el select, y metes los valores en un array. Así por ejemplo:
Código PHP:
Ver original
  1. $consulta= "SELECT * FROM perfil WHERE nombre='$nombreNew'";
  2. $rdo2=mysql_query($consulta,$link);
  3. $miarray = mysql_fetch_array($rdo2);
Y ahí tiens todo. ¿Qué quieres usar nombre? echo $miarray['nombre']. ¿Email? $miarray['email'] y así siempre =)

Saludos!
__________________
Neversyn Software e Ingeniería
  #5 (permalink)  
Antiguo 10/02/2010, 11:37
Avatar de andmai  
Fecha de Ingreso: enero-2010
Mensajes: 84
Antigüedad: 14 años, 3 meses
Puntos: 1
Respuesta: modificar contraseña de un usuario

Muchisimas gracias zeuslife!!!Ya me funciona todo!!!!
Un besote
  #6 (permalink)  
Antiguo 10/02/2010, 11:50
Avatar de zeuslife  
Fecha de Ingreso: enero-2008
Ubicación: Madrid
Mensajes: 533
Antigüedad: 16 años, 3 meses
Puntos: 11
Respuesta: modificar contraseña de un usuario

Nada =) Suerte!
__________________
Neversyn Software e Ingeniería

Etiquetas: contraseña, modificar, 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 15:54.