Webmaster общности: Predpriemach.com | SearchEngines.bg

    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 .

    Оставете коментар