Забравена парола

Genius_m

Registered
Здравейте! Някой може ли да ми каже как да си направя Забравена парола.. Да я праща на въведения емайл.. Това съм го направил единственото нещо което не мога да направя е.. Самата парола при регистрация се запазва в md5 формат как да направя да я праща нормалната парола... смисъл въведената при регистрация...
 
не може да изведеш паролата от md5-то най добре прави нова парола и пращай нея... ;)
 
Ако праща нова парола.. Някой злонамерен потребител ако почне да въвежда емайлите на потребителите ми и всичките с нови пароли... Не може ли примерно да им праща някакъв линк на който ако щракнат да си въвеждат старата парола, ако не са щракнали си продължават със старата...
 
стара парола няма как да стане. Нали за това е forgot password прави така:
направи едно поле varchar 32 генерирай някакв текст и го мини през md5. Не го записвай в поле парола и това е линка който ще пращаш на потребителите.
forgotPassord.php?user=$user&code=$code
в този файл ще имаш две полета нова парола и потвърди новата парола. И просто преди да смениш паролата правиш проверка дали кода е съшия и ако е същия обновяваш паролата и сменяш кода с друг. Така правя аз
 
В един мой сайт съм го направил по следния начин:

  • 1. НЕ ИЗПИСВАМ НИКОГА емайлите на потребителите, всеки да си знае неговия!
    2. След това като отиде някой потребител на "забравена парола", въвежда емайла си.
    3. Кода изпраща линк с генерирано ИД (по моя формула).
    4. Потребителя влиза в пощата си, влиза в писмото което съм му изпратил (т.е. самата система му е го е изпратила де ;д), клика на линка.
    5. Отваря му се страница в която ако това генерирано ИД, вече е използвано, смисъл при изпращане на линк с генерирано ИД, това ИД се записва и след като се смени паролата, това ИД се изтрива, за да не става злоупотреби.
    6. На тази страница има, НОВА ПАРОЛА, ПОВТОРИ НОВА ПАРОЛА.
    7. След въвеждането, потребителя влиза успешно в системата, с акаунта си и новата парола която е създал по горе споменатите действия.
 
Изпрщането + генерирането на кода:

Код:
<form action="" method="post">
				<center>Е-майл <input type="text" name="email" size="50" /><br />
				<input type="submit" name="send" value="Изпрати" /></center>
				</form>
				<?php
				if(isset($_POST['send']))
				{
				$email = htmlspecialchars($_POST['email']);
				if($email == NULL)
				{
				echo "Не сте въвели електронна поща.";
				}else{
				$sql = mysql_query("SELECT SQL_CACHE * FROM users WHERE email='$email'") or die (mysql_error());
				$row = mysql_fetch_assoc($sql);
				$broiLP = mysql_num_rows($sql);
				if($broiLP == NULL)
				{
				echo "<h3><span style='color:red;'>Този е-майл не конфигурира в списъка с потребители.</span></h3><br />";
				}
				else{
				$to = $email;
				$subject = "Забравена парола";
				$user = $row['username'];
				$year = time('Y');
				$data = time();
				$kod = (($row['id'] + strlen($user) + $year + ((strlen($user) * $year)) * 2) + ((2 * $year) * strlen($user)));
mail($to,$subject,$message,"From: support@sait.com\r\nContent-Type: text/html; charset=utf-8;\r\n" );
 

Back
Горе