Foros del Web » Programando para Internet » PHP »

recuperar contraseña php

Estas en el tema de recuperar contraseña php en el foro de PHP en Foros del Web. 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 ...
  #1 (permalink)  
Antiguo 15/02/2010, 22:05
 
Fecha de Ingreso: octubre-2008
Mensajes: 26
Antigüedad: 16 años, 1 mes
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!!!
  #2 (permalink)  
Antiguo 15/02/2010, 22:19
Avatar de jackson666  
Fecha de Ingreso: noviembre-2009
Ubicación: Buenos Aires, Argentina
Mensajes: 1.971
Antigüedad: 15 años
Puntos: 65
Respuesta: recuperar contraseña php

Los primeros tres caracteres? Simple!

Código PHP:
Ver original
  1. $row['MAIL'] = substr($row['MAIL'],0,3);
__________________
HV Studio
Diseño y desarrollo web
  #3 (permalink)  
Antiguo 15/02/2010, 23:20
 
Fecha de Ingreso: octubre-2008
Mensajes: 26
Antigüedad: 16 años, 1 mes
Puntos: 0
Respuesta: recuperar contraseña php

ok gracias, y sabes como hacer eso para recuperar la contraseña??, en lugar de poner el correo poner el usuario y que este se compare para recuperar la contraseña, osea que si los usuarios son iguales mandara la contraseña al correo que esta en la bd, pero al momento de poner que la contraseña fue enviada a su correo debera salir que fue envia al correo que empieza y aparecer los tres primeros caracteres de su correo, me explike???
  #4 (permalink)  
Antiguo 16/02/2010, 01:13
 
Fecha de Ingreso: noviembre-2004
Ubicación: NULL
Mensajes: 655
Antigüedad: 20 años
Puntos: 6
Respuesta: recuperar contraseña php

Prueba con esto


Código PHP:

<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['USER']!='' && valid_email($_POST['USER'])==TRUE)
{
//Hacemos la consulta en la base de datos
$query "SELECT * FROM password WHERE USER = '".($_POST['USER'])."'";
$getEmail mysql_query($query) or die(mysql_error());
$row mysql_fetch_assoc($getEmail);
//Componemos el mensaje
$headers "From: $mail \r\n";
$headers .= "Reply-To: $mail \r\n";
$headers .= "X-Mailer: PHP/" phpversion();
$subject "Peticion de Contrase&ntilde;a desde $mail";
$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="USER" type="text" id="USER" value="<?php if(isset($_POST['USER'])) { echo $_POST['USER']; } ?>" size="32" />
    <input type="hidden" name="mail" value="<? echo $mail ?>">

</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>
  #5 (permalink)  
Antiguo 18/02/2010, 22:15
 
Fecha de Ingreso: octubre-2008
Mensajes: 26
Antigüedad: 16 años, 1 mes
Puntos: 0
Respuesta: recuperar contraseña php

gracias por sus respuestas, pilucho eh revisado lo que me mandaste, pero no lo hace, como que el problema es el textbox, ya que si pongo el usuario me manda el siguiente mensaje que tengo en el codigo:

'Asegurese de que no ha dejado el campo vacio y que la direccion de correo electronica es una direccion de correo valida';

esto me sale al poner el usuario "04180329", y la verdad ya no se ke sea
espero me puedan ayudar
  #6 (permalink)  
Antiguo 19/02/2010, 00:08
 
Fecha de Ingreso: octubre-2008
Mensajes: 26
Antigüedad: 16 años, 1 mes
Puntos: 0
Respuesta: recuperar contraseña php

solo cambie los valores, pero el problema es que antes en le textbox ponia un correo para que lo compara y ya buscaba la contraseña y la mandaba, ahora el usuario es un numero ejemplo 04180329, pero la poner este numero me maraca uno de los mensajes que pongo en mi codigo:
$error = 'Asegurese de que no ha dejado el campo vacio y que la direccion de correo electronica es una direccion de correo valida';
no me detecta el numero para verificar si ya esta bien o no, la verdad no se ke sea, o porque no me kiere detectar el numero espero me puedas ayudar, les dejo el codigo nuevamentente pero ya modificado:
codigo conexion
<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_user($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/funcion1.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['USER']!='' && valid_user($_POST['USER'])==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 USER = '".($_POST['user'])."'";
$getEmail = mysql_query($query) or die(mysql_error());
$row = mysql_fetch_assoc($getEmail);
//Componemos el mensaje
$headers = "From: $mail \r\n";
$headers .= "Reply-To: $mail \r\n";
$headers .= "X-Mailer: PHP/" . phpversion();
$subject = "Peticion de Contraseña desde $mail";
$message .= "La contraseña 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ÑA1/PHP_SELF']?>">
<table width="246" border="7" align="center" cellpadding="0" cellspacing="0">
<tr>
<td width="36">Usuario:</td>
<td width="192"><input name="mail" type="text" id="USER" value="<?php if(isset($_POST['USER'])) { echo $_POST['USER']; } ?>" size="32" /></td>
</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>
  #7 (permalink)  
Antiguo 19/02/2010, 07:41
 
Fecha de Ingreso: febrero-2010
Mensajes: 818
Antigüedad: 14 años, 9 meses
Puntos: 55
Respuesta: recuperar contraseña php

la condicion valid_email($_POST['USER'])==TRUE ya que no es un mail por lo que retorna false

podrias poner if(is_numeric($_POST['USER']))
  #8 (permalink)  
Antiguo 19/02/2010, 07:49
Avatar de maycolalvarez
Colaborador
 
Fecha de Ingreso: julio-2008
Ubicación: Caracas
Mensajes: 12.120
Antigüedad: 16 años, 4 meses
Puntos: 1532
Respuesta: recuperar contraseña php

es recomendable guardar las contraseñas por medio de un hash como MD5, y en tal caso, si el usuario olvida la contraseña no la podrás recuperar, pero podrías generar una aleatoria y enviársela para que establezca otra contraseña
  #9 (permalink)  
Antiguo 21/02/2010, 19:30
 
Fecha de Ingreso: octubre-2008
Mensajes: 26
Antigüedad: 16 años, 1 mes
Puntos: 0
Respuesta: recuperar contraseña php

gracias por su respuestas, no la puse en MD5 porque no me lo pidieron y lo que quieren es que la contraseña llegue al correo, creo que me estan haciendo batallar mas, pero ni modo lo tengo hacer asi jajaja, eh investigado y por lo que veo es que no me deja escribir otra cosa que no sea un correo por la funcion que tengo que es solo para validar una expresion regular de un correo, pero lo que no encuentro es como validar una expresion regular de un numero entero.
esta es mi funcio para validar funciones regulares de un mail:

function valid_user($str)
{
return ( ! preg_match("/^([a-z0-9\+_\-]+)(\.[a-z0-9\+_\-]+)*@([a-z0-9\-]+\.)+[a-z]{2,6}$/ix", $str)) ? FALSE : TRUE;
}

pero para validar una expresion regular de un numero como seria?, espero me puedan ayudar

Etiquetas: contraseña, recuperar
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 13:11.