Foros del Web » Programando para Internet » PHP »

Problema con SCRIPT recuperador de contraseñas

Estas en el tema de Problema con SCRIPT recuperador de contraseñas en el foro de PHP en Foros del Web. Hola amigos: Estoy con un script que su función es recuperar contraseñas para la gente que se olvida. Es para mi zona de miembros. @import ...
  #1 (permalink)  
Antiguo 11/01/2011, 09:47
 
Fecha de Ingreso: enero-2011
Mensajes: 77
Antigüedad: 13 años, 3 meses
Puntos: 3
Exclamación Problema con SCRIPT recuperador de contraseñas

Hola amigos:

Estoy con un script que su función es recuperar contraseñas para la gente que se olvida. Es para mi zona de miembros.

Código PHP:
Ver original
  1. <?php
  2.     include('config.php'); // incluímos los datos de acceso a la BD
  3.     if(isset($_POST['enviar'])) {
  4.         if(empty($_POST['username'])) {
  5.             echo "No ha ingresado el usuario. <a href='javascript:history.back();'>Reintentar</a>";
  6.         }else {
  7.             $username = mysql_real_escape_string($_POST['username']);
  8.             $username = trim($username);
  9.             $sql = mysql_query("SELECT username, password, email FROM usuarios WHERE username='".$username."'");
  10.             if(mysql_num_rows($sql)) {
  11.                 $row = mysql_fetch_assoc($sql);
  12.                 $num_caracteres = "10"; // asignamos el número de caracteres que va a tener la nueva contraseña
  13.                 $nueva_clave = substr(md5(rand()),0,$num_caracteres); // generamos una nueva contraseña de forma aleatoria
  14.                 $username = $row['username'];
  15.                 $password = $nueva_clave; // la nueva contraseña que se enviará por correo al usuario
  16.                 $password2 = md5($password);
  17.                 $email = $row['email'];
  18.                
  19.                 mysql_query("UPDATE usuarios SET password='".$password2."' WHERE username='".$username."'");
  20.                
  21.                 $remite_nombre = "Tu cuenta, Página de Navidad"; // Tu nombre o el de tu página
  22.                 $remite_email = "[email protected]"; // tu correo
  23.                 $asunto = "Recuperación de contraseña"; // Asunto (se puede cambiar)
  24.                 $mensaje = "Se ha generado una nueva contraseña para el usuario <strong>".$username."</strong>. La nueva contraseña es: <strong>".$password."</strong>.";
  25.                 $cabeceras = "From: ".$remite_nombre." <".$remite_correo.">rn";
  26.                 $cabeceras = $cabeceras."Mime-Version: 1.0n";
  27.                 $cabeceras = $cabeceras."Content-Type: text/html";
  28.                 $enviar_email = mail($email,$asunto,$mensaje,$cabeceras);
  29.                 if($enviar_email) {
  30.                     echo "La nueva contraseña ha sido enviada al email asociado al usuario ".$username.".";
  31.                 }else {
  32.                     echo "No se ha podido enviar el email. <a href='javascript:history.back();'>Reintentar</a>";
  33.                 }
  34.             }else {
  35.                 echo "El usuario <strong>".$username."</strong> no está registrado. <a href='javascript:history.back();'>Reintentar</a>";
  36.             }
  37.         }
  38.     }else {
  39. ?>

El prorblema que tengo es que siempre introduzco mi nombre de usuario y siempre me dice que no he introducido ningún nombre, cuando yo accedo con el sin problemas. Me podríais decir donde tengo el error, por favor.
  #2 (permalink)  
Antiguo 11/01/2011, 10:40
Avatar de RIVERMILLOS  
Fecha de Ingreso: marzo-2010
Mensajes: 1.336
Antigüedad: 14 años, 1 mes
Puntos: 15
Respuesta: Problema con SCRIPT recuperador de contraseñas

cambia el empy por isset comprueba que en el formulario el nombre del campo sea el mismo que esta en el archivo php antes de hacer cualquier cosa iprime la variable para ver que esta llegando.


saludos
  #3 (permalink)  
Antiguo 11/01/2011, 12:07
 
Fecha de Ingreso: enero-2011
Mensajes: 77
Antigüedad: 13 años, 3 meses
Puntos: 3
Respuesta: Problema con SCRIPT recuperador de contraseñas

hola River, mira he cambiado lo que tu me has dicho y he comprobado los nombre y los parámetros del campo del formulario.

Mira aquí te dejo el código completo ya arreglado:
Código PHP:
Ver original
  1. <?php
  2.     include('config.php'); // incluímos los datos de acceso a la BD
  3.     if(isset($_POST['enviar'])) { // comprobamos que se han enviado los datos del formulario
  4.         if(isset($_POST['username'])) {
  5.             echo "No ha ingresado el usuario. <a href='javascript:history.back();'>Reintentar</a>";
  6.         }else {
  7.             $username = mysql_real_escape_string($_POST['username']);
  8.             $username = trim($username);
  9.             $sql = mysql_query("SELECT username, password, email FROM usuarios WHERE username='".$username."'");
  10.             if(mysql_num_rows($sql)) {
  11.                 $row = mysql_fetch_assoc($sql);
  12.                 $num_caracteres = "10"; // asignamos el número de caracteres que va a tener la nueva contraseña
  13.                 $nueva_clave = substr(md5(rand()),0,$num_caracteres); // generamos una nueva contraseña de forma aleatoria
  14.                 $username = $row['username'];
  15.                 $password = $nueva_clave; // la nueva contraseña que se enviará por correo al usuario
  16.                 $password2 = md5($password); // encriptamos la nueva contraseña para guardarla en la BD
  17.                 $email = $row['email'];
  18.                 // actualizamos los datos (contraseña) del usuario que solicitó su contraseña
  19.                 mysql_query("UPDATE usuarios SET password='".$password2."' WHERE username='".$username."'");
  20.                 // Enviamos por email la nueva contraseña
  21.                 $remite_nombre = "Tu cuenta, Página de Navidad"; // Tu nombre o el de tu página
  22.                 $remite_email = "[email protected]"; // tu correo
  23.                 $asunto = "Recuperación de contraseña"; // Asunto (se puede cambiar)
  24.                 $mensaje = "Se ha generado una nueva contraseña para el usuario <strong>".$username."</strong>. La nueva contraseña es: <strong>".$password."</strong>.";
  25.                 $cabeceras = "From: ".$remite_nombre." <".$remite_correo.">rn";
  26.                 $cabeceras = $cabeceras."Mime-Version: 1.0n";
  27.                 $cabeceras = $cabeceras."Content-Type: text/html";
  28.                 $enviar_email = mail($email,$asunto,$mensaje,$cabeceras);
  29.                 if($enviar_email) {
  30.                     echo "La nueva contraseña ha sido enviada al email asociado al usuario ".$username.".";
  31.                 }else {
  32.                     echo "No se ha podido enviar el email. <a href='javascript:history.back();'>Reintentar</a>";
  33.                 }
  34.             }else {
  35.                 echo "El usuario <strong>".$username."</strong> no está registrado. <a href='javascript:history.back();'>Reintentar</a>";
  36.             }
  37.         }
  38.     }else {
  39. ?>
  40. <form action="<?=$_SERVER['PHP_SELF']?>" method="post">
  41. <fieldset><ul><li><label for="usuario">Usuario</label>
  42. <input class="input" type="text" id="username" name="username" value""></li>
  43. <li class="buttons">
  44. <input type="submit" id="submit_button" class="submit" name="enviar" value="Recuperar"></li></ul></fieldset></form>
  45. <?php
  46.     }
  47. ?>

Yo no entiendo cual es el error... siempre me da el primer error del comando: No ha ingresado usuario.
  #4 (permalink)  
Antiguo 11/01/2011, 12:38
Avatar de RIVERMILLOS  
Fecha de Ingreso: marzo-2010
Mensajes: 1.336
Antigüedad: 14 años, 1 mes
Puntos: 15
Respuesta: Problema con SCRIPT recuperador de contraseñas

en el if(isset($_POST['username'])) tendria que ir con signo de admiracion asi

if(!isset($_POST['username']))

para negarlo osea en el caso que de que no exista la variable.


quitale al formulario el value a ver si es por eso que te esta molestando.


saludos
  #5 (permalink)  
Antiguo 11/01/2011, 12:42
 
Fecha de Ingreso: enero-2011
Mensajes: 77
Antigüedad: 13 años, 3 meses
Puntos: 3
Respuesta: Problema con SCRIPT recuperador de contraseñas

Amigo he hecho lo que tu me has dicho pero sigeeee el error, ya me está cansando el error...
Código PHP:
Ver original
  1. <?php
  2.     include('config.php'); // incluímos los datos de acceso a la BD
  3.     if(isset($_POST['enviar'])) { // comprobamos que se han enviado los datos del formulario
  4.         if(!isset($_POST['username'])) {
  5.             echo "No ha ingresado el usuario. <a href='javascript:history.back();'>Reintentar</a>";
  6.         }else {
  7.             $username = mysql_real_escape_string($_POST['username']);
  8.             $username = trim($username);
  9.             $sql = mysql_query("SELECT username, password, email FROM usuarios WHERE username='".$username."'");
  10.             if(mysql_num_rows($sql)) {
  11.                 $row = mysql_fetch_assoc($sql);
  12.                 $num_caracteres = "10"; // asignamos el número de caracteres que va a tener la nueva contraseña
  13.                 $nueva_clave = substr(md5(rand()),0,$num_caracteres); // generamos una nueva contraseña de forma aleatoria
  14.                 $username = $row['username'];
  15.                 $password = $nueva_clave; // la nueva contraseña que se enviará por correo al usuario
  16.                 $password2 = md5($password); // encriptamos la nueva contraseña para guardarla en la BD
  17.                 $email = $row['email'];
  18.                 // actualizamos los datos (contraseña) del usuario que solicitó su contraseña
  19.                 mysql_query("UPDATE usuarios SET password='".$password2."' WHERE username='".$username."'");
  20.                 // Enviamos por email la nueva contraseña
  21.                 $remite_nombre = "Tu cuenta, Página de Navidad"; // Tu nombre o el de tu página
  22.                 $remite_email = "[email protected]"; // tu correo
  23.                 $asunto = "Recuperación de contraseña"; // Asunto (se puede cambiar)
  24.                 $mensaje = "Se ha generado una nueva contraseña para el usuario <strong>".$username."</strong>. La nueva contraseña es: <strong>".$password."</strong>.";
  25.                 $cabeceras = "From: ".$remite_nombre." <".$remite_correo.">rn";
  26.                 $cabeceras = $cabeceras."Mime-Version: 1.0n";
  27.                 $cabeceras = $cabeceras."Content-Type: text/html";
  28.                 $enviar_email = mail($email,$asunto,$mensaje,$cabeceras);
  29.                 if($enviar_email) {
  30.                     echo "La nueva contraseña ha sido enviada al email asociado al usuario ".$username.".";
  31.                 }else {
  32.                     echo "No se ha podido enviar el email. <a href='javascript:history.back();'>Reintentar</a>";
  33.                 }
  34.             }else {
  35.                 echo "El usuario <strong>".$username."</strong> no está registrado. <a href='javascript:history.back();'>Reintentar</a>";
  36.             }
  37.         }
  38.     }else {
  39. ?>
  40. <form action="<?=$_SERVER['PHP_SELF']?>" method="post">
  41. <fieldset><ul><li><label for="usuario">Usuario</label>
  42. <input class="input" type="text" id="username" name="username"></li>
  43. <li class="buttons">
  44. <input type="submit" id="submit_button" class="submit" name="enviar"></li></ul></fieldset></form>
  45. <?php
  46.     }
  47. ?>
  #6 (permalink)  
Antiguo 11/01/2011, 12:43
Avatar de RIVERMILLOS  
Fecha de Ingreso: marzo-2010
Mensajes: 1.336
Antigüedad: 14 años, 1 mes
Puntos: 15
Respuesta: Problema con SCRIPT recuperador de contraseñas

mira haciendo pruebas asi me funciono a mi

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


pruebalo y me dices
  #7 (permalink)  
Antiguo 11/01/2011, 12:50
 
Fecha de Ingreso: enero-2011
Mensajes: 77
Antigüedad: 13 años, 3 meses
Puntos: 3
Respuesta: Problema con SCRIPT recuperador de contraseñas

Ahora por lo menos no sale el mensaje de error jejeje Pero no me hace lo que debe de hacer, que para es quiero arreglarlo. Para que el usuario pueda recuperar la contraseñas y se genere una automáticamente y se mande a su correo.

PRIMERA FASE DEL ERROR COMPLETADO JEJEJE
  #8 (permalink)  
Antiguo 11/01/2011, 13:19
Avatar de RIVERMILLOS  
Fecha de Ingreso: marzo-2010
Mensajes: 1.336
Antigüedad: 14 años, 1 mes
Puntos: 15
Respuesta: Problema con SCRIPT recuperador de contraseñas

ok , igual comenta si tienes mas errores


saludos
  #9 (permalink)  
Antiguo 11/01/2011, 13:37
 
Fecha de Ingreso: enero-2011
Mensajes: 77
Antigüedad: 13 años, 3 meses
Puntos: 3
Respuesta: Problema con SCRIPT recuperador de contraseñas

Cita:
Iniciado por RIVERMILLOS Ver Mensaje
comenta si tienes mas errores
¿qué quieres decir con eso que compruebe si hay mas errores?
  #10 (permalink)  
Antiguo 11/01/2011, 13:49
Avatar de RIVERMILLOS  
Fecha de Ingreso: marzo-2010
Mensajes: 1.336
Antigüedad: 14 años, 1 mes
Puntos: 15
Respuesta: Problema con SCRIPT recuperador de contraseñas

osea que si tienes mas dudas de lo que estas haciendo que postees para ayudarte.

saludos

Etiquetas: contraseñas
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 23:00.