Ver Mensaje Individual
  #1 (permalink)  
Antiguo 15/02/2010, 22:05
oscarjosue
 
Fecha de Ingreso: octubre-2008
Mensajes: 26
Antigüedad: 15 años, 7 meses
Puntos: 0
Exclamación recuperar contraseña php

hola que tal, tengo un problema, tengo una pagina en la cual se registran los usuarios, pero si olvidan su contraseña deben recuperarla, esto de modo que se le envie a su correro 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 ke mandar la contraseña a su correo que tiene el usuario, pero hay otra cosa, en la pagina en donde dice que se le mando su contraseña tene que aparecer las primeras tres caracteres que tiene su correo, yo se que es inecesario esto, pero asi me lo pidieron la verdad no se como hacerle, aqui les dejo mi codigo anterior:

codigo conexion

<body>
<?PHP
$conexion = mysql_pconnect("localhost", "root", "root")
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 USER, PASS, MAIL FROM password WHERE 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&ntilde;a desde [email protected]";
$message .= "La contrase&ntilde; de tu cuenta es: \r\n";
$message .= $row['PASS'];

if(mail($row['MAIL'], $subject, $message, $headers))
{
//Solo establecemos esta variable si el envio fue exitoso
$exito = 'La contrase&ntilde;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>&nbsp;</td>
<td><input name="Enviar" type="submit" id="Enviar" value="Enviar" /></td>
</tr>
</table>
</form>
<p>
<?php } ?>
</p>
<p><a href="../index.php"><strong>Salir </strong></a></p>
</body>
</html>

espero me puedan ayudar me urge!!!