Recuperar contraseña con PHP y MySQL

Recuperar contraseña con PHP y MySQL. En este artículo veremos cómo recuperar el password olvidado de nuestro sistema web, por lo tanto, aprenderemos a actualizar la contraseña de la cuenta que se ha olvidado. Usando un vínculo para restablecer su contraseña de la cuenta que está registrada en una base de datos.
Recuperar contraseña con PHP y MySQL
Nuestro anterior tutorial de sistema de login de php había proporcionado una guía para implementar el registro de usuario y el sistema de login en php. Ahora vamos a extender ese script con la funcionalidad de contraseña olvidada con PHP y MySQL. También, le demostraremos cómo puede enviar el acoplamiento de la contraseña del restablecimiento vía email al usuario. Antes de comenzar con este tutorial de recuperación de contraseña olvidada, sugerimos pasar por el anterior sistema de inicio de sesión de php tutorial primero.
Aquí la lista de archivos que se utiliza en el proceso de recuperación de contraseña olvidada.
- Usuarios.php – Gestionar trabajos relacionados con bases de datos (MySQL)
- MiCuenta.php– Controla la contraseña olvidada por parte del usuario, actualizar contraseña, y enviar por Email los permisos para cambiar el password.
- index. php – Muestra el formulario de login con el vínculo de contraseña olvidado y regístrate si eres usuario nuevo.
- EnviarPassword.php – Formulario especial para la contraseña olvidada.
- ReiniciarPassword.php – Mostrar formulario para ingresar contraseña nueva .
- style.css – Estilo de inicio de sesión, para los formularios y estilo del módulo.
Creación de tablas de bases de datos
Para almacenar los detalles del usuario y la contraseña, es necesario tener una base de datos en MySQL. A continuación, les mostrare un ejemplo para la tabla.
CREATE TABLE IF NOT EXISTS `usuarios` ( `id` int(11) NOT NULL, `nombres` varchar(150) COLLATE utf8_unicode_ci DEFAULT NULL, `apellidos` varchar(150) COLLATE utf8_unicode_ci DEFAULT NULL, `email` varchar(150) COLLATE utf8_unicode_ci DEFAULT NULL, `password` varchar(120) COLLATE utf8_unicode_ci DEFAULT NULL, `telefono` varchar(15) COLLATE utf8_unicode_ci DEFAULT NULL, `olvido_pass_iden` varchar(32) COLLATE utf8_unicode_ci DEFAULT NULL, `creado` datetime DEFAULT NULL, `modificado` datetime DEFAULT NULL, `estado` enum('1','0') COLLATE utf8_unicode_ci DEFAULT '1' ) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
Clase de usuario específicamente el fichero (Usuarios. php)
La clase de «User» maneja todos los trabajos relacionados con la base de datos, como ser, INSERT INTO. Esta clase se ha extendido con un método «Update ()» para actualizar datos de los usuarios.
class User{ private $dbHost = "localhost"; private $dbUsername = "MiUsuario"; private $dbPassword = "Password"; private $dbName = "BaseDeDatos"; private $userTbl = "TablaMysql"; //Mostrando la conexion con la base de datos public function __construct(){ if(!isset($this->db)){ // Conexion con la database $conn = new mysqli($this->dbHost, $this->dbUsername, $this->dbPassword, $this->dbName); if($conn->connect_error){ die("Falló la conexion con MySQL: " . $conn->connect_error); }else{ $this->db = $conn; } } }
Conclusión
La idea central de este tutorial es que te ayude a implementar el sistema de recuperación de contraseña olvidada con restablecimiento de la contraseña mediante el envío de Email. Para más detalles acerca del sistema, descargue el código fuente para su implementación correcta.

Excelente aporte… úsenlo en una raspberry que también funciona al 100%.
Excelente!!! Funcionó a la perfección.
Saludos y Gracias!!
Hola, como esta, llevo días peleando con el envío del correo, lo hace pero necesito que me incluya un href, pero lo puestra textualmente, que error puedo tener me ayudan por favor gracias
hola como estas? te agradezco mucho por la ayuda , sin embargo me conecta y me registra perfecto, pero no me llego jamas el correo de restablecimiento de clave, quizas debia ser por medio del hosting? estuve haciendo las pruebas local no se si ese sea el error, porque me dice que envió el correo de restablecimeinto CORRECTAMENTEE y jamas llego el mail, AYUDAME PORFAVOOOOR.
Muchas gracias ppor tu atraicion y aporte
donde pongo mi correo
Hola, lo probe desde mi pagina web y no me llega correo,, hay que cambiar alguna linea de codigo aparte de la conexion a mysql
me sale error en la conexion de mysql que podria ser?
Hola Daniela,
Revise el usuario y la contraseña de MySQL, es posible que exista algun error en ese tema.
si gracias ya lo arrele ahora lo que pasa es que al poner el correo para que me llegue la nueva contraseña no me llega a correo el cambio que podria ser?
Hay parte en la estructura donde señala que «peguemos codigo del video»? por lo que noto que no está completo el código
Saludos,
Puede especificar el nombre de archivo y en que linea observa ese detalle.
Eso no me sirvió porque no deja ingresar
Hola, Se que es muy tarde pero no me llega el correo ya lo subi a un servidor web y no me llega hay alguna solucion?
Se que es muy tarde pero no me llega el correo ya lo subi a un servidor web y no me llega hay alguna solucion?
hola
he colocado el código en una cuenta real y me envía correo
hola
he colocado el código en una cuenta real y no me envía correo
puedes pasamr una captura
por alguna razón no me llega el correo para modificar la contraseña
Tienes que probarlo en un servidor web real, en un localhost no envia.
El archivo no se deja descargar.
Hola johanna
Intenta nuevamente, ya está disponible.
Saludos a la distancia.