PHP - Recuperar contraseña

   
Vista:

Recuperar contraseña

Publicado por Laura (8 intervenciones) el 12/09/2013 21:49:35
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)

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
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 <maria@example.com>, Kelly <kelly@example.com>' . "\r\n";
 $cabeceras .= 'From: nocontestar@*********.com' . "\n";
 
 // Enviarlo
 $para = $email;
 mail($para, $asunto, $mensaje, $cabeceras);
 }
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de xve

Recuperar contraseña

Publicado por xve (5522 intervenciones) el 13/09/2013 07:47:52
Hola Laura, en el código que nos muestras, no se ver el error, parece que esta todo bien... lo único que se me ocurre, es que no llegue correctamente la contraseña por $_POST...
si haces un
1
echo $_POST["strPassword"]
te muestra la contraseña en pantalla?
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Recuperar contraseña

Publicado por Laura (8 intervenciones) el 13/09/2013 11:17:58
Eso que tendria que ponerlo, despues de "Tu password es:"?
Llevo poco con php y a veces no me entero mucho, sorry :(
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de xve

Recuperar contraseña

Publicado por xve (5522 intervenciones) el 13/09/2013 12:26:04
Hola Laura, eso es para ver si la variable tiene valor... te lo mostrara por pantalla.
Si, puedes ponerlo después de:
1
$mensaje .='Tu password es:' .$cadenarecuperacion;

Coméntanos que te muestra, ok?
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Recuperar contraseña

Publicado por Laura (8 intervenciones) el 13/09/2013 19:51:09
Hola de nuevo

Pues nada, he intentado hacer lo que me has dicho pero sigue llegandome al mail, esto:

Tu password es: (esta parte vacía)

No se que coño estoy haciendo mal pero me estoy desesperando ya...
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de xve

Recuperar contraseña

Publicado por xve (5522 intervenciones) el 14/09/2013 09:13:59
Ok, pero en la pantalla te aparece la contraseña?
Desde puede poner la instrucción que comentamos, todo funciona igual, con la diferencia de que tienes que ver la contraseña en la pantalla.

Si no la ves, seguramente es que la variable $_POST["strPassword"] esta vacía.

Podemos ver el formulario?
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Recuperar contraseña

Publicado por Laura (8 intervenciones) el 14/09/2013 14:05:33
A ver en la BD está la contraseña...
Mira, te dejo los codigos:

recuperar_contrasena.php

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
<!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

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
<?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 <maria@example.com>, Kelly <kelly@example.com>' . "\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);
?>
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de xve

Recuperar contraseña

Publicado por xve (5522 intervenciones) el 14/09/2013 20:15:05
Haber Laura, todos los valores que quieras coger con $_POST tienen que haber sido enviados mediante un formulario que envié con el método post. Si no hay ningun <input name="strPassword"..., nunca tendrá valor $_POST['strPassword']

La contraseña que quieres enviar por correo, donde se encuentra en la base de datos?
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Recuperar contraseña

Publicado por Laura (8 intervenciones) el 16/09/2013 00:15:48
Si, la contraseña esta en una base de datos.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Recuperar contraseña

Publicado por PACO (1 intervención) el 23/12/2015 10:38:16
Hola Laura, no soy muy bueno en esto pero me da que te sobra un parentesis de cierre. Un saludo
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar