Foros del Web » Programando para Internet » PHP »

sistema login php

Estas en el tema de sistema login php en el foro de PHP en Foros del Web. 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 ...
  #1 (permalink)  
Antiguo 16/09/2016, 07:50
 
Fecha de Ingreso: febrero-2003
Mensajes: 76
Antigüedad: 21 años, 2 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
  #2 (permalink)  
Antiguo 16/09/2016, 13:07
 
Fecha de Ingreso: enero-2016
Mensajes: 31
Antigüedad: 8 años, 3 meses
Puntos: 0
Respuesta: sistema login php

Por favor organiza el codigo XD y disculpa no se entiende nada en el formulario para registrar las dudas hay una parte que es para publicar codigo
  #3 (permalink)  
Antiguo 16/09/2016, 18:24
 
Fecha de Ingreso: febrero-2003
Mensajes: 76
Antigüedad: 21 años, 2 meses
Puntos: 0
Respuesta: sistema login php

en que parte pana
__________________
Netfiles
  #4 (permalink)  
Antiguo 16/09/2016, 22:26
Avatar de petit89  
Fecha de Ingreso: marzo-2011
Mensajes: 1.135
Antigüedad: 13 años, 1 mes
Puntos: 170
Respuesta: sistema login php

ya probaste que puedes enviar un correo simple via funcion php????
__________________
█ WebHosting / Reseller a bajo costo | Uptime Garantizado | Soporte en Español e Ingles
¿Te sirvió la respuesta? Deja un +1 (Triangulo negro al lado derecho)
  #5 (permalink)  
Antiguo 17/09/2016, 16:49
 
Fecha de Ingreso: febrero-2003
Mensajes: 76
Antigüedad: 21 años, 2 meses
Puntos: 0
Respuesta: sistema login php

por mercury lo envía tengo varios y no me deja enviar los correos de activación y si olvido la contraseña
__________________
Netfiles
  #6 (permalink)  
Antiguo 19/09/2016, 20:12
 
Fecha de Ingreso: febrero-2003
Mensajes: 76
Antigüedad: 21 años, 2 meses
Puntos: 0
Respuesta: sistema login php

ya me envia los correos ahora me da error cuando activo la cuenta
__________________
Netfiles

Etiquetas: formulario, html, login, mysql, select, sistema, sql, 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 16:42.