entre Desarrolladores

Recibe ayuda de expertos

Registrate y pregunta

Es gratis y fácil

Recibe respuestas

Respuestas, votos y comentarios

Vota y selecciona respuestas

Recibe puntos, vota y da la solución

Pregunta

2votos

Sistema de recuperación de contraseña con php

Hola chicos, estoy haciendo un sistema de recuperación de contraseña. Cogí una idea de un chico de youtube a la hora de hacer la seguridad para que si alguien cambia el token o el usuario, no se viese el input, el problema es que desde primeras no se ve.

El correo lo manda, genera el token, y la URL, pero creo que no valida la URL con el usuario y el token, os dejo el código en sí.

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <meta http-equiv="X-UA-Compatible" content="ie=edge">
    <title>Document</title>
</head>
<body>
<?php
    if(isset($_GET['email']) AND isset($_GET['token'])){
    require "conexion.php";
    $email = $mysqli->real_escape_string($_GET['email']);
    $token = $mysqli->real_escape_string($_GET['token']);
    $sql = $mysqli->query("SELECT token FROM usuarios WHERE email = '$email'");
    $row = $sql->fetch_array();

    if($row['token'] == $token) { 

?>
<?php
if(isset($_POST['codigo'])){
    require "conexion.php";
    $pass = $mysqli->real_escape_string($_POST['pass']);
    $pass = hash('sha512',$pass);

    $act = $mysqli->query("UPDATE usuarios SET pass= '$pass', token = '' WHERE email = '$email'");

    if ($act){
        echo "Su contraseña se ha actualizado correctamente";
        header("Refresh: 1; URL=../index.php");
    }else{
        echo "Ha habido un problema a la hora de actualizar la contraseña";
    }
}
?>

<form action="" method="post">
<input type="text" placeholder="Ingrese su nueva contraseña" name="pass" required/>
<input type="submit" value="Cambiar contraseña" name="codigo"/>
</form>
</body>
    <?php  } } ?>
</html>

Por favor, accede o regístrate para responder a esta pregunta.

Otras Preguntas y Respuestas


...

Bienvenido a entre Desarrolladores, donde puedes realizar preguntas y recibir respuestas de otros miembros de la comunidad.

Conecta