<p> <strong>Enlace para restablecer tu contraseña</strong><br> <a href="' . $link . '"> Restablecer contraseña </a> </p> </body> </html>'; $cabeceras = 'MIME-Version: 1.0' . "\r\n"; $cabeceras .= 'Content-type: text/html; charset=iso-8859-1' . "\r\n"; $cabeceras .= 'From: Escuela <*****@*****.**>' . "\r\n"; mail($email, "Recuperar contraseña", $mensaje, $cabeceras); } $email = $_POST['email']; $respuesta = new stdClass(); if ($email != "") { $conexion = new mysqli('localhost', 'root', 'root', 'escuelapos'); $sql = " SELECT * FROM administrativo, alumno, profesor WHERE email = '{$email}' "; $resultado = $conexion->query($sql); if ($resultado->num_rows > 0) { $usuario = $resultado->fetch_assoc(); $linkTemporal = generarLinkTemporal($usuario['id'], $usuario['username']); if ($linkTemporal) { enviarEmail($email, $linkTemporal); $respuesta->mensaje = '<div class="alert alert-info"> Un correo ha sido enviado a su cuenta de email con las instrucciones para restablecer la contraseña </div>'; } } else { $respuesta->mensaje = '<div class="alert alert-warning"> No existe una cuenta asociada a ese correo. </div>'; } } else { $respuesta->mensaje = "Debes introducir el email de la cuenta"; } echo json_encode($respuesta);
<strong>Enlace para restablecer tu contraseña</strong><br> <a href="' . $link . '"> Restablecer contraseña </a> </p> </body> </html>'; $cabeceras = 'MIME-Version: 1.0' . "\r\n"; $cabeceras .= 'Content-type: text/html; charset=iso-8859-1' . "\r\n"; $cabeceras .= 'From: Codedrinks <*****@*****.**>' . "\r\n"; // Se envia el correo al usuario mail($email, "Recuperar contraseña", $mensaje, $cabeceras); } if (isset($_POST['email'])) { $email = $_POST['email']; $respuesta = new stdClass(); if ($email != "") { $sql = 'SELECT id_cedu_, User_Nomb_ FROM users WHERE User_Correo_ = "' . $email . '"'; $resultado = $conectar->consultas($sql); if (isset($resultado)) { $linkTemporal = generarLinkTemporal($resultado[0], $resultado[1]); if ($linkTemporal) { enviarEmail($email, $linkTemporal); $respuesta->mensaje = '<div class="alert alert-info"> Un correo ha sido enviado a su cuenta de email con las instrucciones para restablecer la contraseña </div>'; } } else { $respuesta->mensaje = '<div class="alert alert-warning"> No existe una cuenta asociada a ese correo. </div>'; } } else { $respuesta->mensaje = "Debes introducir el email de la cuenta"; echo json_encode($respuesta); } }
<?php session_start(); include_once "../conectbd.php"; require_once '../funciones.php'; $link = Conectar(); $email = $_POST['email']; if ($email != "") { $resultado = $link->query(" SELECT * FROM Usuario WHERE email = '{$email}' "); if ($resultado->num_rows > 0) { $usuario = $resultado->fetch_assoc(); $linkTemporal = generarLinkTemporal($usuario['email'], $link); if ($linkTemporal) { enviarEmail($usuario['email'], generarMensaje($linkTemporal)); echo '<div class="alert alert-info"> Un correo ha sido enviado a su cuenta de email con las instrucciones para restablecer la contraseña </div>'; } else { echo 'No puedo generarse la accion'; } } else { echo '<div class="alert alert-warning"> No existe una cuenta asociada a ese correo. </div>'; } } else { echo "Debes introducir el email de la cuenta"; } function generarLinkTemporal($email, $link) { // Se genera una cadena para validar el cambio de contraseña $cadena = $email . rand(1, 9999999) . date('Y-m-d'); // Se cifra la cadena para que nadie mas tenga acceso a ella ni pueda averiguar como se ha formado $token = sha1($cadena); $result = $link->query("INSERT INTO tblreseteopass (email, token) VALUES('{$email}','{$token}')");
/****Aqui es el archivo que resive el post enviado por ajax de restablecer contraseña y envia el correo****/ date_default_timezone_set('Etc/UTC'); error_reporting(E_ALL); ini_set('display_errors', '1'); require '../../librerias/PHPMailer/PHPMailerAutoload.php'; include '../../../resources/orcl_conex.php'; include "../../../resources/select/funciones.php"; include "../../config/config.php"; $usuario = dameUsuario_correo($_POST["cedula"]); $cedula = $_POST['cedula']; //buscar usuario list($fila, $count) = buscarUsuario($cedula); //generar link $sha = sha1($cedula); $link = generarLinkTemporal($sha, $base_url); //actualizar link en la tabla user if (actualizarToken($fila['ID_USER'], $sha)) { if ($count == 1) { $correo = new PHPMailer(); //$correo->IsSMTP(); //$mail->SMTPDebug = 1; // debugging: 1 = errors and messages, 2 = messages only $correo->SMTPAuth = true; $correo->SMTPSecure = 'ssl'; $correo->Host = "correo.ivss.gob.ve"; $correo->Port = 25; $correo->IsHTML(true); $correo->Username = "******"; $correo->Password = "******"; $correo->SetFrom("*****@*****.**"); $correo->Subject = "Cambio de Password";
</p> </body> </html>'; $cabeceras = 'MIME-Version: 1.0' . "\r\n"; $cabeceras .= 'Content-type: text/html; charset=iso-8859-1' . "\r\n"; $cabeceras .= 'From: Codedrinks <*****@*****.**>' . "\r\n"; mail($email, "Recuperar contraseña", $mensaje, $cabeceras); } require '../../modelo/mod_connex.php'; $conexion = new Connex(); $pgconn = $conexion->conectar(); require '../../modelo/mod_usuario.php'; $usuario = new usuario(); $email = strtoupper($_POST['email']); $respuesta = new stdClass(); if ($email != "") { $consulta = $usuario->obtener_correo($email, $conexion); if (pg_num_rows($consulta) > 0) { $usuario = pg_fetch_array($consulta, 0, PGSQL_ASSOC); $linkTemporal = generarLinkTemporal($usuario['usu_cod'], $usuario['usu_login']); if ($linkTemporal) { enviarEmail($email, $linkTemporal); $respuesta->mensaje = '<div class="alert alert-info"> Un correo ha sido enviado a su cuenta de email con las instrucciones para restablecer la contraseña </div>'; } } else { $respuesta->mensaje = '<div class="alert alert-warning"> No existe una cuenta asociada a ese correo. </div>'; } } else { $respuesta->mensaje = "Debes introducir el email de la cuenta"; } echo json_encode($respuesta);
function verificarLogin($user, $pass) { //El password obtenido se le aplica el crypt(md5) //Posteriormente se compara en el query $pass_c = sha1(md5($pass)); $q = "select * from Usuario where email='{$user}' and password='******'"; //obtenemos el link de la BD y ejecutamos la consulta $link = Conectar(); $result = $link->query($q); //Si el resultado obtenido no tiene nada if ($result->num_rows == 0) { $q = "select intentos, estado from Usuario where email='{$user}'"; $result = $link->query($q); if ($result->num_rows != 0) { $res = mysqli_fetch_assoc($result); //si estado es bloqueado //Muestra un error y redirige al index if ($res['estado'] == 'bloqueado') { echo 'El usuario esta bloqueado, se le ha enviado un email para restaurarlo'; } else { $intentos = $res['intentos']; $intentos = $intentos + 1; //Si es el tercer intento fallido, se bloquea el usuario //Muestra un error y redirige al index if ($intentos == 3) { $q = "UPDATE Usuario SET intentos='{$intentos}', estado='bloqueado' where email='{$user}'"; $result = $link->query($q); $linktemporal = generarLinkTemporal($user, $link); enviarEmail($user, generarMensaje($linktemporal)); echo 'El usuario ha sido bloqueado, se le ha enviado un email para restaurarlo'; } else { $q = "UPDATE Usuario SET intentos='{$intentos}' where email='{$user}'"; $result = $link->query($q); echo 'Usuario o Contrasenia Incorrecta'; } } } else { echo 'Usuario o Contrasenia Incorrecta'; } } else { $reg = mysqli_fetch_assoc($result); if ($reg['estado'] != 'bloqueado') { session_start(); $_SESSION["codSesion"] = guardarConexion($reg['email']); $_SESSION["useremail"] = $reg['email']; $_SESSION["username"] = $reg['nomApellidos']; $_SESSION["rol"] = $reg['rol']; //Poner a cero el numero de intentos $q = "UPDATE Usuario SET intentos='0' where email='{$user}'"; $result = $link->query($q); usuarioEstaOnline(); header("location:layout.php"); $link->close(); die; } else { echo '<script type="text/javascript"> alert("El usuario esta bloqueado."); window.location="layout.php" </script>'; } } }