El problema es el siguiente, la contraseña la tengo encriptada en md5 y he aqui lo que me pasa, tengo el siguiente formulario:
Código HTML:
<form action="cambiar_clave2.php" method="POST"> <table width="100%" cellpadding="0" cellspacing="5"> <tr> <td width="31%" align="right">Clave actual:</td> <td width="69%"><input name="pass" type="password" class="file" size="40"></td> </tr> <tr> <td align="right">Nueva clave:</td> <td><input name="nueva" type="password" class="file" size="40"></td> </tr> <tr> <td align="right">Confirmación de nueva clave:</td> <td><input name="nueva2" type="password" class="file"></td> </tr> </table> <table width="100%" border="0" cellspacing="5" cellpadding="0"> <tr> <td> </td> </tr> <tr> <td><div align="center"> <input type="submit" class="boton" value="Modificar clave" name="modificar" /> <input type="reset" class="boton" value="Borrar campos" /> </div></td> </tr> <tr> <td> </td> </tr> <tr> <td><span class="Estilo1">Todos los campos son obligatorios</span></td> </tr> <tr></tr> <tr> <td> </td> </tr> <tr> <td><a href="index.php">Volver</a></td> </tr> </table> </form>
Código PHP:
<?
session_start();
if (isset($_COOKIE["unick"])) {
include("php/config.php");
$sesion = $_COOKIE["unick"];
if (isset($_POST["modificar"])) {
$a = $_POST["pass"];
$b1 = $_POST["nueva"];
$b2 = $_POST["nueva2"];
if($a==NULL|$b1==NULL|$b2==NULL) {
echo "Un campo está vacio. Vuelva a intentarlo <a href=cambiar_clave.php>clic aquí</a>";
}else{
$con = mysql_query("SELECT * FROM usuarios WHERE nick='$session'");
$mostrar = mysql_fetch_assoc($con);
$actual = $mostrar['contrasena'];
echo $con;
if($actual!=$a) {
echo "\"Clave actual\" debe ser la clave que usas actualmente para iniciar sesion. Si no conoces esa clave, aconsejo ir a \"olvide mi clave\". <a href=cambiar_clave.php>Volver a intentarlo</a>";
}else{
if($b1!=$b2) {
echo "Las contraseñas no coinciden. <a href=cambiar_clave.php>Volver a intentarlo</a>";
}else{
$sql = "UPDATE usuarios set contrasena='".md5($_POST['contrasena'])."')='$b1' WHERE nick = '$sesion'";
$res = mysql_query($sql) or die("Error: ".mysql_error());
echo "Tu clave ha sido modificada correctamente. Esta es tu nueva clave: <b>".$b1."</b>.<br>Tu cuenta se cerró y tendras que volver a abrirla. <a href=index.php>Volver a la pagina princial</a>";
$_SESSION = array();
}
}
}
}
}else{
echo 'Tu no estas autentificado. No puedes entrar aqui!!<br><br><a href="index.php">Volver</a>';
}
?>
"Clave actual" debe ser la clave que usas actualmente para iniciar sesion. Si no conoces esa clave, aconsejo ir a "olvide mi clave".
y no se que hacer. creo que el fallo puede estar aqui:
$con = mysql_query("SELECT * FROM usuarios WHERE nick='$session'");
$mostrar = mysql_fetch_assoc($con);
$actual = $mostrar['contrasena'];
pero no estoy seguro, si alguien puede revisar el codigo se lo agradeceria muchisimo. y recuerden que la contraseña está en md5
gracias de antemano y un saludo.