PHP:Забравена парола
Ето един скрипт за които генерира нова парола когато потребителят забрави своята. Нека кажем че имаме една таблица с име users и колони в нея user , mail , password първо ще създам html формата.
за да се генерира нова парола която ще се изпрати на меил адрес аз съм направил потребителя да се задължава да въведе потребителско име и меил ето я формата.
<form action="form.php" method="POST">
<input type="text" name="user" /><br />
<input type="text" name="mail" /><br />
<input type="submit" name="submit" value="Изпрати!"/>
</form>до тук нищо сложно 🙂
ето и самия php скрипт първоначално присвояваме данните от html формата
$user=$_POST['user']; #за потребителя
$mail=$_POST['mail']; #за имеил-а на потребителя
след което се свързваме с база данни
$link=mysql_connect('localhost','user','pass'); #тук се пишат съответно сървера , потребителя и паролата за връзка към база данни
$dbmysql_select_db('database'); # тук избираме съответната базаданнисега правим една заявка към база данни както вече споменах моята таблица се казва users с полета user , mail и password
$q="SELECT * FROM table WHERE mail='$mail AND user='$user' ";
$result=mysql_query($q,$link);преброяваме редовете от заявката с mysql_num_rows и ако няма селектиран ред то скрипта спира до тук и потребителя неможе да си промени паролата
if(mysql_num_rows($result)<1){echo "Няма такова потребителско име и мейл в нашата база данни ";exit();}генерираме новата парола
$newpass=substr (md5(rand()), 3, 10);
принципа е следния: генерира се произволно число след което се хешира с md5 и се взима само част от низа.
след като генерираме нова парола трябва да ъпдейтним полето в таблицата
$q=“UPDATE table SET password=’$newpassword’ WHERE user=’$user’ AND pass=’$pass’ „
$up=mysql_query($q,$link);
и накрая изпращаме паролата на имейл-а на потребителя
mail ($mail, 'Вашата нова парола', 'Здравейте $user вапата нова парола е $newpass ', 'From: admin@admin.bg');
echo "На вашия меил бе изпратена новата ви парола!";етого и целия код
form.php
<?php
$user=$_POST['user'];
$mail=$_POST['mail'];
$link=mysql_connect('localhost','user','pass');
$dbmysql_select_db('database');
$q="SELECT * FROM table WHERE mail='$mail AND user='$user' ";
$result=mysql_query($q,$link);
if(mysql_num_rows($result)<1){echo "Няма такова потребителско име и мейл в нашата база данни ";exit();}
$newpass=substr (md5(rand()), 3, 10);
$q="UPDATE table SET password='$newpassword' WHERE user='$user' AND pass='$pass' "
$up=mysql_query($q,$link);
mail ($mail, 'Вашата нова парола', 'Здравейте $user вапата нова парола е $newpass ', 'From: admin@admin.bg');
echo "На вашия меил бе изпратена новата ви парола!";
?>Ако има проблеми по урока питейте в форума 😉
Поздрави Стоян Делев 😉
Урока участва в играта на http://inbg.eu
Урока е написан специално за web-tourist.net .


