Avatar Image
Machacateclados
Machacateclados

Donde encuentro un ejemplo de la parte de las webs de "no recuerdo la contraseña" ?

En php, que te pregunte la pregunta secreta...todo en una base de datos de mysql.

Lo tengo hecho pero tiene un fallo.

Avatar Image
@man / @woman
@man / @woman

Si ya lo tienes echo... mira a ver donde te falla y trateremos de ayudarte.

Avatar Image
Machacateclados
Machacateclados

Pues resulta que cuando intento recuperar la contraseña me falla, tiene un bug el codigo.

Si pongo una respuesta que tengo repetida en dos usuarios, me responde la contraseña de 2 usarios:

El teu password es: gomez (un usuario)
El teu password es: salva (otro usuario)

Cuando le pongo mi Username, entonces me enseña mi pregunta, y si le pongo una respuesta de otro usuario. Me da la password de ese usuario.

Supongo que tengo que pasarle un campo más a la consulta sql.

Aqui pongo el username:

Codigo

<?php
session_start();
?>
<?php include ("./cap.php";-) ;
?>
<html>
<title>Recordar Password</title>
<body bgcolor=#f3efa0>
<center>
<H2>Recordar Password</h2>

<FORM Action="repuser.php" Method="GET" Enctype="text/html" Name="usuaris">
Escriu el teu Username:

<INPUT type="text" maxlength="10" size="10" name="user">
<br><br>
<INPUT type="submit" value="Enviar">

</FORM>

<a href="index.php">Torna</a> <br>
<br>
</body>
 </html>
 <?php include ("./peu.php";-) ;
?>

Aqui escribo la respuesta secreta:

Codigo
Codigo Codigo Codigo <?php include ("./cap.php"[;)];
?>
<html>
<title>Recordar Password</title>
<body bgcolor=#f3efa0>
<center><br>
<?php
$user= $_GET['user'];
// Establim connexio amb el servidor de BD(host,usuari,contrasenya)
$conn=mysql_connect("localhost","root",""[;)];
//Identifiquem la base de dades que volem utilitzar */
$err_db=mysql_select_db("escola"[;)];
// Establim la comanda SQL que volem executar
$sql="select Pregunta from usuaris where Username='$user'"; $resul=mysql_query($sql);
if ($user==""[;)] {
echo "<FONT COLOR='#FF0000'>";
echo "S'ha d'omplir el camp";
?>
<html><br>
<a href="recordar.php"><br>Torna</a> <br><br>
</html>
<?php include ("./peu.php"[;)];
?>
<?php
?>
<?php
echo mysql_error();
exit;
} $existeix=0;
while ($arr_resul= mysql_fetch_array($resul)){ $existeix=1;
print("La teva pregunta es: "."<b>"."$arr_resul[0]"."</b>"[;)];
?> <html>
<body bgcolor=#f3efa0>
<!--formulari que demana la resposta-->
<FORM Action="reprep.php" Method="GET" Enctype="text/html" Name="usuaris">
Escriu la resposta secreta:
<br><br>
<INPUT type="text" maxlength="10" size="20" name="resp">
<td><br><br>
<INPUT type="submit" value="Enviar">
</FORM>
<center>
</body>
</html> <?php
} if($existeix==0)
{
echo "El usuari no existeix";
} ?>
<br><br>
<a href="recordar.php">Torna</a> <br><br>
</body>
</html>
<?php include ("./peu.php"[;)];
?>

 Aqui me dice mi password si todo es correcto:

Codigo
Codigo Codigo Codigo <?php include ("./cap.php"[;)];
?>
<html>
<title>Recordar Password</title>
<body bgcolor=#f3efa0>
<center><br>
<?php
$resposta= $_GET['resp']; // Establim connexio amb el servidor de BD(host,usuari,contrasenya)
$conn=mysql_connect("localhost","root",""[;)]; //Identifiquem la base de dades que volem utilitzar */
$err_db=mysql_select_db("escola"[;)];
// Establim la comanda SQL que volem executar
$sql="select Password,Resposta from usuaris where Resposta='$resposta'"; $existeix= 0; $resul=mysql_query($sql);
while ($arr_resul= mysql_fetch_array($resul)){ $existeix=1; print("El teu password es: "."<b>"."$arr_resul[0]"."</b><br><br>"[;)];
} if ($existeix !=1)
{
echo "<FONT COLOR='#FF0000'>";
echo "<h4>"."La resposta no existeix"."</h4>";
}

mysql_close();
?> <a href="recordar.php">Torna</a> <br><br>
</center>
</body>
</html>
<?php include ("./peu.php"[;)];
?>

Avatar Image
@man / @woman
@man / @woman

Tienes que pasar, además de la respuesta, el identificador del usuario para comprobar que sea este.

Codigo
&nbsp;$sql="select Password,Resposta from usuaris where Resposta='$resposta'";

 Esta línea tienes que cambiarla...

Tienes que cambiar la mentalidad.

Tienes la respuesta, $resposta. Pues buscas en la base de datos cual es la respuesta que han puesto y después la comparas y ves si es cierto o no.
ATENCIÓN: Este tema no tiene actividad desde hace más de 6 MESES,
te recomendamos abrir un nuevo tema en lugar de responder al actual
Opciones:
Ir al subforo:
Permisos:
TU NO PUEDES Escribir nuevos temas
TU NO PUEDES Responder a los temas
TU NO PUEDES Editar tus propios mensajes
TU NO PUEDES Borrar tus propios mensajes
Temas similares
No se han encontrado temas similares