Tengo una web en marcha. EL sistema de registro y identificacion funciona perfecto.
Ahora estoy haciendo un modulo de modificacion de datos. Para modificar la contraseña se pide introducir la nueva dos veces, pero el problema viene a la hora del update de la contraseña. Mientras cuando registor a un usuario se puede identificar bien, cuando hago el update de la nueva contraseña encryptada cuando se intenta loguear dice que el password es incorrecto.
El godigo seria algo asi:
Formulario que pasa por post la contraseña la pagina q lo recoge hace:
...
$passwd1=$_POST["passwd1"];
$passwd2=$_POST["passwd2"];
...
// hasta aki lee passwd1 i 2 perfectamente, si son iguales llega el momento de actualizar
global $semilla;
$passwd=crypt($passwd1, $semilla);
$sSQL="UPDATE usuarios SET Nombre='$nombre', Apellidos='$apellidos', Password='$passwd', Email='$email', Direccion='$direccion', Ciudad='$ciudad', CodigoPostal='$codigopostal', Pais='$pais' WHERE UsuarioID='$usuarioID'";
$result=mysql_db_query($dbname, $sSQL) or die (mysql_error());
// esta funcion no retorna error y actualiza todos los datos incluido la contraseña.
A la hora de la identificacion de usuario hago algo asi:
...
$login=$_POST["login"];
$pass=$_POST["pass"];
...
if($row["Password"]==crypt($pass,$semilla) ){
// Inserta las cookies correspondientes
}
Pues lo curioso de todo esto es q para hacer el registro de usuario haciendolo igual funciona y identifica pero al modificar la contraseña asi ya no. La unica diferencia entre el registro y la edicion de datos es que el registor hace un INSERT INTO y la edicion hace un UPDATE, asi que el problema tiene q estar ahi pero no lo encuentro ya que las dos usan la misma variable globar $semilla