Ver Mensaje Individual
  #1 (permalink)  
Antiguo 27/06/2010, 18:44
Avatar de catpaw
catpaw
 
Fecha de Ingreso: mayo-2010
Ubicación: xalapa
Mensajes: 856
Antigüedad: 14 años
Puntos: 23
Ayuda UPDATE al cambiar la contraseña

Hola!!

aqui otra vez, ahora con un formulario donde el usuario puede visualizar sus datos y editarlos, en eso todo bien... El problema viene cuando va a cambiar su contraseña, y esq segun yo tiene q ver con la variable de sesion de su contraseña ya que la mando a llamar y la paso a una contraseña nueva, esto para hacer las validaciones correspondientes, siento q es eso ¿hay alguna forma de actualizarla?. La verdad si estoy perdida en este caso, les pongo lo mas importante del codigo:

Código PHP:
...
<?php
include "conexion.php";
$nombre_usuario $_SESSION["nombre_usuario"];
$result=mysql_query("consulta");
while(
$rowmysql_fetch_assoc($result)){
?>
<form>
<tabla>
... //campos con datos que muestro del usuario
Contraseña Actual:  
<input type="password" name="contrasenaActual" size="40" maxlength="40"value="" />

Contraseña Nueva:
<input type="password" id="contrasenaNueva" name="contrasenaNueva" size="40" maxlength="40"value="<?php if (isset($_POST['contrasenaNueva'])) echo $_POST['contrasenaNueva'];?>" />

Confirmar Contraseña:
<input type="password" id="ccontrasena" name="ccontrasena" size="40" maxlength="40"value="<?php if (isset($_POST['ccontrasena'])) echo $_POST['ccontrasena'];?>" />
 ...
</tabla>
</form>
<?php
include "conexion.php";

$contrasenaUsuario $_SESSION["contrasena"];
$contrasenaActual $_POST["contrasenaActual"];
$contrasenaNueva $_POST["contrasenaNueva"];
$ccontrasena $_POST["ccontrasena"];
... 
//otras variables

...//validaciones

//ya valido si pone su contraseña actual bien, si la nueva es igual a la confirmacion

//aqui viene mi condicion que no me hace lo que deseo

if ($contrasenaNueva!=NULL){//si ha hecho cambio de contraseña q la actualice
$query "UPDATE usuarios SET contrasena='$contrasenaNueva' WHERE nombre_usuario = '$nombre_usuario' ";
$actual=mysql_query($query) or die(mysql_error());

}

else{
// si no ha escrito una contraseña nueva q se quede con la actual

$query "UPDATE usuarios SET contrasena='$contrasenaUsuario' WHERE nombre_usuario = '$nombre_usuario' ";
$actual=mysql_query($query) or die(mysql_error());

}
?>
El caso es q probe: si la cambio si la actualiza, entonces regreso a probar (con la contraseña ya cambiada) y hago otras modificaciones sin cambiar la contraseña y me la cambia a la primera que tenia, es decir, con ejemplo:

tengo de contraseña "gato" (reviso la bd)
entro y la cambio por "gatito" (reviso la bd y si la cambia)
entro nuevamente y hago otras modificaciones sin cambiar la contraseña (entro a la bd y me vuelve a cambiar la contraseña por "gato")

La condicion que pongo en los updates no me esta funcionando nada, no se como ponerla o de que otra forma pueda conseguir que si no cambio la contraseña me la deje asi, espero me puedan ayudar, gracias desde ya!!