Foros del Web » Programando para Internet » PHP »

Recuperar contraseña

Estas en el tema de Recuperar contraseña en el foro de PHP en Foros del Web. Hola!! Veréis estoy haciendo una pagina para recuperar contraseña (no codificada) y que una vez el usuario ha introducido su email y se ha detectado ...
  #1 (permalink)  
Antiguo 18/09/2013, 12:57
Avatar de Bathory666  
Fecha de Ingreso: agosto-2012
Ubicación: Barcelona
Mensajes: 15
Antigüedad: 11 años, 8 meses
Puntos: 0
Recuperar contraseña

Hola!!
Veréis estoy haciendo una pagina para recuperar contraseña (no codificada) y que una vez el usuario ha introducido su email y se ha detectado que existe en la BD, le mande un email con la contraseña. El caso es que el email me llega, pero no me sale la contraseña, alguien me puede decir donde tengo el fallo? Gracias!!
(lo de los asteriscos es el nombre de la bd)

function generar_cadena_password($email)
{
global $*********, $database_*********;
$cadenarecuperacion = $_POST['strPassword'];

$updateSQL = sprintf("UPDATE tblregistrosclub SET strRecuperar=%s WHERE strEmail=%s",
GetSQLValueString($_POST['strPassword'], "text"),
GetSQLValueString($email, "text"));

$Result1 = mysql_query($updateSQL, $*********) or die(mysql_error());

$para = $email;
$asunto = 'Recuperacion Password';
$mensaje .='Tu password es:' .$cadenarecuperacion;


// Para enviar correo HTML, la cabecera Content-type debe definirse
$cabeceras = 'MIME-Version: 1.0' . "\n";
$cabeceras .= 'Content-type: text/html; charset=iso-8859-1' . "\n";

// Cabeceras adicionales
//$cabeceras .= 'To: María <[email protected]>, Kelly <[email protected]>' . "\r\n";
$cabeceras .= 'From: nocontestar@*********.com' . "\n";

// Enviarlo
$para = $email;
mail($para, $asunto, $mensaje, $cabeceras);
}
  #2 (permalink)  
Antiguo 18/09/2013, 13:02
 
Fecha de Ingreso: julio-2013
Ubicación: México
Mensajes: 361
Antigüedad: 10 años, 9 meses
Puntos: 55
Respuesta: Recuperar contraseña

Hola, tu lógica esta mal, tu función es para cambiar la contraseña por una enviada por el usuario.

Saludos
  #3 (permalink)  
Antiguo 18/09/2013, 13:02
Avatar de loncho_rojas
Colaborador
 
Fecha de Ingreso: octubre-2008
Ubicación: En el mejor lugar del mundo
Mensajes: 2.704
Antigüedad: 15 años, 6 meses
Puntos: 175
Respuesta: Recuperar contraseña

Primero que nada tendrías que hacer un formulario simple, de un solo campo para que introduzcan su email... ya con ese dato verificas con un SELECT de SQL si existe o no el mail, es facil saber si existe o no.. solo cuentas la cantidad de resultados, y si es 1 es positivo...

De ahi utilizas ese mismo select para recuperar la contraseña y enviarsela a su mail...

Tú estas haciendo un UPDATE, es decir, estás reescribiendo la contraseña... eso sería en el caso que el usuario quisiera cambiar de password.
__________________
Ayudo con lo que puedo en el foro, y solo en el foro.. NO MENSAJES PRIVADOS.. NO EMAILS NI SKYPE u OTROS.

Antes de hacer un TOPICO piensa si puedes hallarlo en Google o en el Buscador del Foro...
  #4 (permalink)  
Antiguo 18/09/2013, 13:07
Avatar de Bathory666  
Fecha de Ingreso: agosto-2012
Ubicación: Barcelona
Mensajes: 15
Antigüedad: 11 años, 8 meses
Puntos: 0
Respuesta: Recuperar contraseña

Sí, el formulario está hecho...

Mira, esto es lo que tengo:

recuperar_contrasena.php

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Documento sin título</title>

</head>

<body>
<p>Escribe tu email y recibirás un link con la contraseña</p>
<form id="form1" name="form1" method="post" action="recuperar_contrasena_paso_1.php">
<p>Email:
<label for="textfield"></label>
<input type="text" name="textfield" id="textfield" />
</p>
<p>
<input type="submit" name="button" id="button" value="Enviar" />
</p>
</form>
<p>&nbsp;</p>
</body>
</html>

recuperar_contrasena_paso_1.php

<?php require_once('Connections/*********.php'); ?>
<?php
if (!function_exists("GetSQLValueString")) {
function GetSQLValueString($theValue, $theType, $theDefinedValue = "", $theNotDefinedValue = "")
{
if (PHP_VERSION < 6) {
$theValue = get_magic_quotes_gpc() ? stripslashes($theValue) : $theValue;
}

$theValue = function_exists("mysql_real_escape_string") ? mysql_real_escape_string($theValue) : mysql_escape_string($theValue);

switch ($theType) {
case "text":
$theValue = ($theValue != "") ? "'" . $theValue . "'" : "NULL";
break;
case "long":
case "int":
$theValue = ($theValue != "") ? intval($theValue) : "NULL";
break;
case "double":
$theValue = ($theValue != "") ? doubleval($theValue) : "NULL";
break;
case "date":
$theValue = ($theValue != "") ? "'" . $theValue . "'" : "NULL";
break;
case "defined":
$theValue = ($theValue != "") ? $theDefinedValue : $theNotDefinedValue;
break;
}
return $theValue;
}
}


function generar_cadena_password($email)
{
global $*********, $database_*********;
$cadenarecuperacion = $_POST['strPassword'];

$updateSQL = sprintf("UPDATE tblregistrosclub SET strRecuperar=%s WHERE strEmail=%s",
GetSQLValueString($cadenarecuperacion, "text"),
GetSQLValueString($email, "text"));

$Result1 = mysql_query($updateSQL, $te*********) or die(mysql_error());

$para = $email;
$asunto = 'Recuperacion Password';
$mensaje .='Tu password es:' .$cadenarecuperacion;

// Para enviar correo HTML, la cabecera Content-type debe definirse
$cabeceras = 'MIME-Version: 1.0' . "\n";
$cabeceras .= 'Content-type: text/html; charset=iso-8859-1' . "\n";

// Cabeceras adicionales
//$cabeceras .= 'To: María <[email protected]>, Kelly <[email protected]>' . "\r\n";
$cabeceras .= 'From: nocontestar@*********.com' . "\n";

// Enviarlo
$para = $email;
mail($para, $asunto, $mensaje, $cabeceras);
}

$varEmail_DatosUsuario = "0";
if (isset($_POST['textfield'])) {
$varEmail_DatosUsuario = $_POST['textfield'];
}
mysql_select_db($database_*********, $*********);
$query_DatosUsuario = sprintf("SELECT * FROM tblregistrosclub WHERE tblregistrosclub.strEmail=%s", GetSQLValueString($varEmail_DatosUsuario, "int"));
$DatosUsuario = mysql_query($query_DatosUsuario, $*********) or die(mysql_error());
$row_DatosUsuario = mysql_fetch_assoc($DatosUsuario);
$totalRows_DatosUsuario = mysql_num_rows($DatosUsuario);
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Documento sin título</title>

</head>

<body>
<?php if ($totalRows_DatosUsuario == 1){
generar_cadena_password($_POST["textfield"]);
?>
<p>Se ha enviado un email con tu contraseña.</p>
<?php }
else
{?>
No existe este email en la BD. <a href="recuperar_contrasena.php">Inténtalo de nuevo</a>
<?php }?>
<p>&nbsp;</p>
</body>
</html>
<?php
mysql_free_result($DatosUsuario);
?>

Llevo muy poco con php y hay algunas cosillas que aun me cuestan, sorry :(
  #5 (permalink)  
Antiguo 18/09/2013, 13:09
Avatar de loncho_rojas
Colaborador
 
Fecha de Ingreso: octubre-2008
Ubicación: En el mejor lugar del mundo
Mensajes: 2.704
Antigüedad: 15 años, 6 meses
Puntos: 175
Respuesta: Recuperar contraseña

deberías resaltar tu código con algun highlight, me arden los ojos... encima de utilzar mil funciones creadas por dreamweaver que son como crear html con word.... te pregunto.. ¿Para qué haces un UPDATE? si lo que querés es que se envíe nomás la contraseña por mail.
__________________
Ayudo con lo que puedo en el foro, y solo en el foro.. NO MENSAJES PRIVADOS.. NO EMAILS NI SKYPE u OTROS.

Antes de hacer un TOPICO piensa si puedes hallarlo en Google o en el Buscador del Foro...
  #6 (permalink)  
Antiguo 18/09/2013, 13:11
Avatar de Bathory666  
Fecha de Ingreso: agosto-2012
Ubicación: Barcelona
Mensajes: 15
Antigüedad: 11 años, 8 meses
Puntos: 0
Respuesta: Recuperar contraseña

Perdón, esque no me dejaba ponerlo en Código... parece que no tengo permisos o no se que...
Lo del update? pues que me he liado... jajaja ya veo que eso es lo que me falla...

Entonces sólo sería eso lo unico que está mal, no?
  #7 (permalink)  
Antiguo 18/09/2013, 13:13
Avatar de loncho_rojas
Colaborador
 
Fecha de Ingreso: octubre-2008
Ubicación: En el mejor lugar del mundo
Mensajes: 2.704
Antigüedad: 15 años, 6 meses
Puntos: 175
Respuesta: Recuperar contraseña

Escribes el código...

Lo seleccionas

En el panel tienes un menú desplegable que dice HIGHLIGHT, seleccionas la opcion PHP y ya...

De todas maneras, te pregunto, estás entendiendo lo que haces con ese código, o es un copy paste?
__________________
Ayudo con lo que puedo en el foro, y solo en el foro.. NO MENSAJES PRIVADOS.. NO EMAILS NI SKYPE u OTROS.

Antes de hacer un TOPICO piensa si puedes hallarlo en Google o en el Buscador del Foro...
  #8 (permalink)  
Antiguo 18/09/2013, 13:17
Avatar de Bathory666  
Fecha de Ingreso: agosto-2012
Ubicación: Barcelona
Mensajes: 15
Antigüedad: 11 años, 8 meses
Puntos: 0
Respuesta: Recuperar contraseña

Más o menos sí... pero esto de mandar contraseña por mail me cuesta...

Entonces solo tengo que cambiar el UPDATE por un SELECT, no?

Perdón por mi torpeza y mi poca experiencia

Etiquetas: contraseña, html, mysql, registro, sql
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 01:47.