Ich schrieb einen Code für die Wiederherstellung des Passwortes. In dem Fall, wenn ein bestehender Benutzer seine E-Mail-Adresse in das Pflichtfeld eingibt, wird ein Link zur Passwortwiederherstellung an seine E-Mail gesendet und dann, wenn er auf den empfangenen Link klickt, wird er auf die Seite zur Passwortwiederherstellung gehen. Es funktioniert perfekt.Zeit in E-Mail für die Passwortwiederherstellung einstellen
Aber ich brauche Zeit Link. Bedeutet, wenn ich 60 Sekunden für Passwort-Wiederherstellung-Link auf E-Mail, dann innerhalb von 60 sek. Der Benutzer kann das Passwort wiederherstellen, andernfalls wird die Verbindung fehlschlagen. Ich habe keine Ahnung, wie es geht? Bitte gib mir Hinweise.
in Tabelle Meine Felder sind: Name, E-Mail, Mobile, Passwort, Passcode
update.php
<?php
include("connection.php");
extract($_POST);
if(isset($email)==true)
{
$query=mysql_query("select * from account where email='$email'") or die(mysql_error());
$result=mysql_num_rows($query);
if($result==1)
{
$salt = "498#2D83B631%3800EBD!801600D*7E3CC13";
$restkey = hash('sha512', $salt.$email);
mysql_query("update account SET passcode='$restkey' where email='$email'") or die(mysql_error());
$to="$email";
$subject="Password Reset";
$pwrurl = "demo.cstechnology.net/updatepass.php?restkey=".$restkey;
$message="To reset your password, please click the link below. If you cannot click it, please paste it into your web browser's address bar.\n\n" . $pwrurl . "\n\nThanks,\nThe Administration";
$header="FROM:[email protected]";
mail($to,$subject,$message,$header);
}
else
{
echo "Invalid Email";
}
}
?>
<form action="" method="post">
<table>
<tr><td>Email</td><td><input type="email" required name="email" /></td></tr>
<tr><td></td><td><input type="submit" name="submit" value="submit" /></td></tr>
</form>
updatepass (für Insert E-Mail Recovery E-Mail-Link senden). php (Nach dem Klicken auf Wiederherstellung E-Mail-Link auf E-Mail. Passwort wird aktualisiert werden)
<?php
session_start();
include("connection.php");
extract($_REQUEST);
extract($_POST);
if(isset($submit)==true)
{
$query=mysql_query("update account SET password='$password' where passcode='$restkey'") or die(mysql_error());
echo"Password Updated Successfully";
}
if(isset($restkey)==true)
{
echo"<form action='' method='post'>
<table>
<tr><td>Password</td><td><input type='password' required name='password' /></td></tr>
<tr><td></td><td><input type='submit' name='submit' value='submit' /></td></tr>
</form>";
}
?>
'$ salt =" 498 # 2D83B631% 3800EBD! 801600D * 7E3CC13 "; Ein Salz sollte für jeden gespeicherten Berechtigungsnachweis eindeutig sein ([OWASP: Passwort Speicher Spickzettel] (https://www.owasp.org/index.php/Password_Storage_Cheat_Sheet#Use_a_cryptographically_strong_credential-specific_salt)) – Andreas
$ salt ist einzigartig und ich habe es mit $ email hinzugefügt. – user3189881
Ich würde diesen Code nicht in einer Live-Umgebung verwenden; es ist nicht so sicher wie du denkst. –