Recuperar contraseña
Tengo una página en la cual se registran los usuarios, pero si olvidan su contraseña deben recuperarla, esto de modo que se le envíe a su correo su contraseña, al principio yo recuperaba la contraseña, pero ahora ya me lo pidiaron diferente, en lugar de comparar los correos, tiene que compara el usuario, si el usuario es correcto tiene que mandar la contraseña a su correo que tiene el usuario, pero hay otra cosa, en la página en donde dice que se le mando su contraseña tené que aparecer las primeras tres caracteres que tiene su correo, yo se que es innecesario esto, pero así me lo pidieron la verdad no se como hacerle, aquí les dejo mi código anterior:
Código conexión
<body>
<?PHP
$conexion = mysql_pconnect("localhost", "root", "root");
mysql_select_db("usuarios") or die ("No se puede conectar con el servidor");
?>
</body>
codigo funcion
<body>
<?php
function valid_email($str)
{
return ( ! Preg_match("/^([a-z0-9\+_\-]+)(\.[a-z0-9\+_\-]+)*@([a-z0-9\-]+\.)+[a-z]{2,6}$/ix", $str)) ? FALSE : TRUE;
} ?>
</body>
</html>
codigo recuperar_contraseña
<body>
<?php
//Conexion con la base de datos y el archivo que contiene la funcion email
require_once('../RECUPERA/db.php');
include('../RECUPERA/funcion.php');
//Recordar contrasena por emaill por Ronruby
//Si presionan el boton Enviar, ejecutamos el Script
if(isset($_POST['Enviar']))
{
//Validacion por parte del servidor
if($_POST['mail']!='' && valid_email($_POST['mail'])==TRUE)
{
//Hacemos la consulta en la base de datos
$query = "SELECT * FROM password INNER JOIN perfil_prueba ON password.ID=perfil_prueba.ID INNER JOIN escolaridad_prueba ON password.ID=escolaridad_prueba.ID INNER JOIN laboral_prueba ON password.ID=laboral_prueba.ID WHERE E_MAIL = '".($_POST['mail'])."'";
$getEmail = mysql_query($query) or die(mysql_error());
$row = mysql_fetch_assoc($getEmail);
//Componemos el mensaje
$headers = "From: [email protected] \r\n";
$headers .= "Reply-To: [email protected] \r\n";
$headers .= "X-Mailer: PHP/" . Phpversion();
$subject = "Peticion de Contraseña desde [email protected]";
$message .= "La contraseñ de tu cuenta es: \r\n";
$message .= $row['PASS'];
if(mail($row['E_MAIL'], $subject, $message, $headers))
{
//Solo establecemos esta variable si el envio fue exitoso
$exito = 'La contraseña fue enviada a su direccion de correo electronico';
}
else
{
$error = 'El envio ha fallado, porfavor contacte al administrador sobre este problema';
}
}
else
{
$error = 'Asegurese de que no ha dejado el campo vacio y que la direccion de correo electronica es una direccion de correo valida';
}
}
if(isset($exito))
{
echo $exito;
}
if(isset($error))
{
echo $error;
}
else
//Solo mostramos el formulario si tenemos un mensaje de error
{ ?>
<form id="form1" name="form1" method="post" action="<?=$_SERVER['../RECUPERA_CONTRASEÑA/PHP_SELF']?>">
<table width="246" border="7" align="center" cellpadding="0" cellspacing="0">
<tr>
<td width="36">Email:</td>
<td width="192"><input name="mail" type="text" id="mail" value="<?php if(isset($_POST['mail'])) { echo $_POST['mail']; } ?>" size="32" /></td>
</tr>
<tr>
<td> </td>
<td><input name="Enviar" type="submit" id="Enviar" value="Enviar"...
Código conexión
<body>
<?PHP
$conexion = mysql_pconnect("localhost", "root", "root");
mysql_select_db("usuarios") or die ("No se puede conectar con el servidor");
?>
</body>
codigo funcion
<body>
<?php
function valid_email($str)
{
return ( ! Preg_match("/^([a-z0-9\+_\-]+)(\.[a-z0-9\+_\-]+)*@([a-z0-9\-]+\.)+[a-z]{2,6}$/ix", $str)) ? FALSE : TRUE;
} ?>
</body>
</html>
codigo recuperar_contraseña
<body>
<?php
//Conexion con la base de datos y el archivo que contiene la funcion email
require_once('../RECUPERA/db.php');
include('../RECUPERA/funcion.php');
//Recordar contrasena por emaill por Ronruby
//Si presionan el boton Enviar, ejecutamos el Script
if(isset($_POST['Enviar']))
{
//Validacion por parte del servidor
if($_POST['mail']!='' && valid_email($_POST['mail'])==TRUE)
{
//Hacemos la consulta en la base de datos
$query = "SELECT * FROM password INNER JOIN perfil_prueba ON password.ID=perfil_prueba.ID INNER JOIN escolaridad_prueba ON password.ID=escolaridad_prueba.ID INNER JOIN laboral_prueba ON password.ID=laboral_prueba.ID WHERE E_MAIL = '".($_POST['mail'])."'";
$getEmail = mysql_query($query) or die(mysql_error());
$row = mysql_fetch_assoc($getEmail);
//Componemos el mensaje
$headers = "From: [email protected] \r\n";
$headers .= "Reply-To: [email protected] \r\n";
$headers .= "X-Mailer: PHP/" . Phpversion();
$subject = "Peticion de Contraseña desde [email protected]";
$message .= "La contraseñ de tu cuenta es: \r\n";
$message .= $row['PASS'];
if(mail($row['E_MAIL'], $subject, $message, $headers))
{
//Solo establecemos esta variable si el envio fue exitoso
$exito = 'La contraseña fue enviada a su direccion de correo electronico';
}
else
{
$error = 'El envio ha fallado, porfavor contacte al administrador sobre este problema';
}
}
else
{
$error = 'Asegurese de que no ha dejado el campo vacio y que la direccion de correo electronica es una direccion de correo valida';
}
}
if(isset($exito))
{
echo $exito;
}
if(isset($error))
{
echo $error;
}
else
//Solo mostramos el formulario si tenemos un mensaje de error
{ ?>
<form id="form1" name="form1" method="post" action="<?=$_SERVER['../RECUPERA_CONTRASEÑA/PHP_SELF']?>">
<table width="246" border="7" align="center" cellpadding="0" cellspacing="0">
<tr>
<td width="36">Email:</td>
<td width="192"><input name="mail" type="text" id="mail" value="<?php if(isset($_POST['mail'])) { echo $_POST['mail']; } ?>" size="32" /></td>
</tr>
<tr>
<td> </td>
<td><input name="Enviar" type="submit" id="Enviar" value="Enviar"...
2 respuestas
Respuesta de Jorge Vila
1
Respuesta de tnathos
1