Ver Mensaje Individual
  #1 (permalink)  
Antiguo 16/09/2016, 07:50
Netfiles
 
Fecha de Ingreso: febrero-2003
Mensajes: 76
Antigüedad: 21 años, 3 meses
Puntos: 0
Pregunta sistema login php

buenas amigos tengo un sistema de login en php, la opción de olvido contraseña y el enviio al correo del usuario, no lo realiza, ya configure el mercury/ de xammp aca el código recuperar_contraseña

Código PHP:
Ver original
  1. <?php
  2.     include('acceso_db.php'); // incluímos los datos de acceso a la BD
  3. ?>
  4. <!doctype html>
  5. <html lang="en">
  6. <head>
  7.     <meta charset="UTF-8">
  8.     <title>Document</title>
  9. </head>
  10. <body>
  11.     <?php
  12.         if(isset($_POST['enviar'])) { // comprobamos que se han enviado los datos del formulario
  13.             if(empty($_POST['usuario_nombre'])) {
  14.                 echo "No ha ingresado el usuario. <a href='javascript:history.back();'>Reintentar</a>";
  15.             }else {
  16.                 $usuario_nombre = mysql_real_escape_string($_POST['usuario_nombre']);
  17.                 $usuario_nombre = trim($usuario_nombre);
  18.                 $sql = mysql_query("SELECT usuario_nombre, usuario_clave, usuario_email FROM usuarios WHERE usuario_nombre='".$usuario_nombre."'");
  19.                 if(mysql_num_rows($sql)) {
  20.                     $row = mysql_fetch_assoc($sql);
  21.                     $num_caracteres = "10"; // asignamos el número de caracteres que va a tener la nueva contraseña
  22.                     $nueva_clave = substr(md5(rand()),0,$num_caracteres); // generamos una nueva contraseña de forma aleatoria
  23.                     $usuario_nombre = $row['usuario_nombre'];
  24.                     $usuario_clave = $nueva_clave; // la nueva contraseña que se enviará por correo al usuario
  25.                     $usuario_clave2 = md5($usuario_clave); // encriptamos la nueva contraseña para guardarla en la BD
  26.                     $usuario_email = $row['usuario_email'];
  27.                     // actualizamos los datos (contraseña) del usuario que solicitó su contraseña
  28.                     mysql_query("UPDATE usuarios SET usuario_clave='".$usuario_clave2."' WHERE usuario_nombre='".$usuario_nombre."'");
  29.                     // Enviamos por email la nueva contraseña
  30.                     $remite_nombre = "administrador"; // Tu nombre o el de tu página
  31.                     $remite_email = "[email protected]"; // tu correo
  32.                     $asunto = "Recuperación de contraseña"; // Asunto (se puede cambiar)
  33.                     $mensaje = "Se ha generado una nueva contraseña para el usuario <strong>".$usuario_nombre."</strong>. La nueva contraseña es: <strong>".$usuario_clave."</strong>.";
  34.                     $cabeceras = "From: ".$remite_nombre." <".$remite_email.">\r\n";
  35.                     $cabeceras = $cabeceras."Mime-Version: 1.0\n";
  36.                     $cabeceras = $cabeceras."Content-Type: text/html";
  37.                     $enviar_email = mail($usuario_email,$asunto,$mensaje,$cabeceras);
  38.                     if($enviar_email) {
  39.                         echo "La nueva contraseña ha sido enviada al email asociado al usuario ".$usuario_nombre.".";
  40.                     }else {
  41.                         echo "No se ha podido enviar el email. <a href='javascript:history.back();'>Reintentar</a>";
  42.                     }
  43.                 }else {
  44.                     echo "El usuario <strong>".$usuario_nombre."</strong> no está registrado. <a href='javascript:history.back();'>Reintentar</a>";
  45.                 }
  46.             }
  47.         }else {
  48.     ?>
  49.         <form action="<?=$_SERVER['PHP_SELF']?>" method="post">
  50.             <label>Usuario:</label><br />
  51.             <input type="text" name="usuario_nombre" /><br />
  52.             <input type="submit" name="enviar" value="Enviar" />
  53.         </form>
  54.     <?php
  55.         }
  56.     ?>
  57. </body>
  58. </html>


cambiar contraseña
Código PHP:
Ver original
  1. <?php
  2.     session_start();
  3.     include('acceso_db.php'); // incluímos los datos de conexión a la BD
  4. ?>
  5. <!doctype html>
  6. <html lang="en">
  7. <head>
  8.     <meta charset="UTF-8">
  9.     <title>Document</title>
  10. </head>
  11. <body>
  12.     <?php
  13.         if(isset($_SESSION['usuario_nombre'])) { // comprobamos que la sesión esté iniciada
  14.             if(isset($_POST['enviar'])) {
  15.                 if($_POST['usuario_clave'] != $_POST['usuario_clave_conf']) {
  16.                     echo "Las contraseñas ingresadas no coinciden. <a href='javascript:history.back();'>Reintentar</a>";
  17.                 }else {
  18.                     $usuario_nombre = $_SESSION['usuario_nombre'];
  19.                     $usuario_clave = mysql_real_escape_string($_POST["usuario_clave"]);
  20.                     $usuario_clave = md5($usuario_clave); // encriptamos la nueva contraseña con md5
  21.                     $sql = mysql_query("UPDATE usuarios SET usuario_clave='".$usuario_clave."' WHERE usuario_nombre='".$usuario_nombre."'");
  22.                     if($sql) {
  23.                         echo "Contraseña cambiada correctamente.";
  24.                     }else {
  25.                         echo "Error: No se pudo cambiar la contraseña. <a href='javascript:history.back();'>Reintentar</a>";
  26.                     }
  27.                 }
  28.             }else {
  29.     ?>
  30.             <form action="<?=$_SERVER['PHP_SELF']?>" method="post">
  31.                 <label>Nueva contraseña:</label><br />
  32.                 <input type="password" name="usuario_clave" maxlength="15" /><br />
  33.                 <label>Confirmar:</label><br />
  34.                 <input type="password" name="usuario_clave_conf" maxlength="15" /><br />
  35.                 <input type="submit" name="enviar" value="Enviar" />
  36.             </form>
  37.     <?php
  38.             }
  39.         }else {
  40.             echo "Acceso denegado.";
  41.         }
  42.     ?>
  43. </body>
  44. </html>
__________________
Netfiles

Última edición por Triby; 16/09/2016 a las 13:40 Razón: Código en highlight