Foros del Web » Programando para Internet » PHP »

Cambiar password vía mysql

Estas en el tema de Cambiar password vía mysql en el foro de PHP en Foros del Web. Hola, nuevamente yo :P Hice un formulario para cambiar la password. Solicita el nombre del usuario, la password actual y la password a usar Pero ...
  #1 (permalink)  
Antiguo 21/04/2012, 18:19
 
Fecha de Ingreso: abril-2012
Mensajes: 11
Antigüedad: 12 años
Puntos: 0
Cambiar password vía mysql

Hola, nuevamente yo :P

Hice un formulario para cambiar la password. Solicita el nombre del usuario, la password actual y la password a usar

Pero aunque pongas la contraseña actual, me sigue dando erronea

Código PHP:
<?php
    
if (empty($_POST['element_1']))
    {
        echo 
"Debes llenar todos los datos";
        exit();
    }

    
$link=mysql_connect("host","user","pass");
    
mysql_select_db("db",$link);

    
$user $_POST['element_1'];
    
$result mysql_query("SELECT nombre FROM usuarios WHERE nombre = '$user'");

    if (
$result
    {
        if (
mysql_num_rows($result) < 1)
        {
            echo 
"El usuario no existe";
            exit();
        }
    }

    
$result mysql_query("SELECT password FROM usuarios WHERE nombre = '$user'");
    
$pass_actual $_POST['element_2'];
    
$pass_nueva $_POST['element_3'];

    if (
$result
    {
        
$row mysql_fetch_row($result); 

        if (
$pass_actual != $row[1])
        {
            echo 
"La password es erronea";
        }
    }

    
mysql_close($link);
?>
El formulario no hace falta mostrarlo:

Nombre = element_1
Password actual = element_2
Password a usar = element_3
  #2 (permalink)  
Antiguo 21/04/2012, 18:33
Avatar de gjx2  
Fecha de Ingreso: agosto-2008
Ubicación: R.D
Mensajes: 1.153
Antigüedad: 15 años, 8 meses
Puntos: 139
Respuesta: Cambiar password vía mysql

Dos cosas.
1- cuando dices

Código PHP:
Ver original
  1. if ($result){
  2.  
  3. }

Exista o no exista el password siempre esta condicion se va cumplir por que $result contiene el resourceid de la consulta.
Entonces en pocas palabra esta demas esa condicional.

2- mysql_fetch_row lee el resultado como una matriz empezando en 0 no en 1
entonces eso quiere decir que debes de hacerlo de esta forma

Código PHP:
Ver original
  1. if ($pass_actual != $row[0])
  2.         {
  3.             echo "La password es erronea";
  4.         }

Saludos.
  #3 (permalink)  
Antiguo 22/04/2012, 05:02
 
Fecha de Ingreso: febrero-2012
Mensajes: 27
Antigüedad: 12 años, 2 meses
Puntos: 1
Respuesta: Cambiar password vía mysql

A ver si te vale esto:

if (isset($_POST["nueva"])) {
$oldpass = trim($_POST["vieja"]);
$newpass = trim($_POST["nueva"]);
$userpass = trim($_POST["usuario"]);

echo "<br />";
if (($vieja != "") and ($nueva != "") and ($usuarioid != "")) {
if (strlen($nueva) > 8) {
$r = mysql_query("SELECT * FROM `usuarios` WHERE (id = '$usarioid') AND (password = '$vieja')");
$n = mysql_num_rows($r);


if ($n) {
if (mysql_query("UPDATE `usuarios` SET password = '$vieja', userpass = '$userpass' WHERE id = '$usuarioid'"))
{
echo "Su contraseña de permiso de entrada a su página ha sido cambiada";
$_SESSION["pass"] = $nueva;
}
}
}

}

Etiquetas: formulario, mysql, password, sql, vía, 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 06:20.