• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

Zmiana hasła użytkownika

Object Storage Arubacloud
0 głosów
563 wizyt
pytanie zadane 19 listopada 2017 w PHP przez mi-20 Stary wyjadacz (13,190 p.)

Witam, mam zrobiłem sobie taki skrypt

<?php
 include "connect.php";
    $tbl=$connect->query('SELECT `pass` FROM `uzytkownicy` WHERE id_user = "62"');
    foreach($tbl as $key => $p){
        $hash = $p['pass'];
        $hash = $hash;
        }
        $OldPass = "rasmuslerdorf";
        $NewPass = "rasmuslerdoarf";
        $NewPass1 = "rasmuslerdoarf";
        $password = password_hash($NewPass, PASSWORD_5);
        if (password_verify($OldPass, $hash)) {
            if(password_verify($NewPass, $hash)){
                echo 'Nowe hasło musi być inne od obecnie używanego';
            }else{
                if($NewPass == $NewPass1){
                    $sth=$connect->prepare('UPDATE `uzytkownicy` SET `pass`=:pass WHERE id_user = "62"');
                    $sth->bindParam(':pass', $password);
                    $sth->execute();
                    echo "Dokonano zmiany hasła";
                }else{
                    echo 'Nowe hasła które podałeś nie są identyczne';
                }
            }
        }else{
            echo 'Hasło które podałeś jako obecnie używane różni się od hasła faktycznie używanego';
        }

jednak nie wiem jak to ostatecznie ogarnąć, po dodaniu nowego hasła do bazy hash za każdym razem jest inny i stare hasło nigdy nie jest zgodne

1 odpowiedź

+1 głos
odpowiedź 19 listopada 2017 przez Assasz Nałogowiec (30,460 p.)
Do funkcji password_verify dajesz hasło niezahashowane, w postaci czystego stringa. Hashe nawet tego samego stringa zawsze będą się różnić.
komentarz 19 listopada 2017 przez mi-20 Stary wyjadacz (13,190 p.)
Ale do funkcji password_verify  daje hasło niezahashowane , no chyba że się jednak mylę, jeśli tak, jak to powinno wyglądać?
komentarz 19 listopada 2017 przez Assasz Nałogowiec (30,460 p.)
Rzeczywiście, mój błąd :) W każdym razie nigdy nie dostaniesz dwa razy tego samego hasha, co akurat nie jest problemem dla password_verify, więc wszystko powinno działać. Jedynie podejrzanie mi wygląda ten algorytm hashowania PASSWORD_5...
komentarz 19 listopada 2017 przez mi-20 Stary wyjadacz (13,190 p.)
OK, już działa. A teraz jeszcze w jaki sposób wysłać maila do użytkownika tak aby mógł potwierdzić zmianę i co powinno zawierać się w treści maila?
komentarz 19 listopada 2017 przez Assasz Nałogowiec (30,460 p.)

Jeszcze przed zmianą hasła wysyłasz do użytkownika na jego maila link potwierdzający, po którego kliknięciu dopiero następuje zmiana. Link ten powinien wyglądać mniej więcej tak: zmianahasla?key=5df56ds7fd... Potem na tej samej stronie sprawdzasz, czy istnieje taki get jak key i sprawdzasz jego treść, jeśli pasuje do danego użytkownika (będzie trzeba ten link zapisać w bazie), to zmieniasz mu hasło. 

Do samego wysyłania maili polecam SwiftMailera

Podobne pytania

–2 głosów
3 odpowiedzi 579 wizyt
pytanie zadane 13 września 2016 w PHP przez SzinDzeks Początkujący (310 p.)
0 głosów
0 odpowiedzi 97 wizyt
pytanie zadane 2 listopada 2018 w SQL, bazy danych przez czujek22 Dyskutant (7,670 p.)
0 głosów
1 odpowiedź 111 wizyt
pytanie zadane 6 stycznia 2020 w PHP przez konradw Nowicjusz (190 p.)

92,555 zapytań

141,403 odpowiedzi

319,559 komentarzy

61,942 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj.

Akademia Sekuraka

Kolejna edycja największej imprezy hakerskiej w Polsce, czyli Mega Sekurak Hacking Party odbędzie się już 20 maja 2024r. Z tej okazji mamy dla Was kod: pasjamshp - jeżeli wpiszecie go w koszyku, to wówczas otrzymacie 40% zniżki na bilet w wersji standard!

Więcej informacji na temat imprezy znajdziecie tutaj. Dziękujemy ekipie Sekuraka za taką fajną zniżkę dla wszystkich Pasjonatów!

Akademia Sekuraka

Niedawno wystartował dodruk tej świetnej, rozchwytywanej książki (około 940 stron). Mamy dla Was kod: pasja (wpiszcie go w koszyku), dzięki któremu otrzymujemy 10% zniżki - dziękujemy zaprzyjaźnionej ekipie Sekuraka za taki bonus dla Pasjonatów! Książka to pierwszy tom z serii o ITsec, który łagodnie wprowadzi w świat bezpieczeństwa IT każdą osobę - warto, polecamy!

...