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

Link resetujący hasło

Object Storage Arubacloud
0 głosów
486 wizyt
pytanie zadane 8 lipca 2018 w PHP przez RobertBaj Użytkownik (810 p.)
Szukam rozwiązania problemu związanego z aktywnością linku resetującego hasło do konta użytkownika. Che aby link resetujący, który zostanie wysłany do użytkownika na e-mail miał określona ważność. Ma ktoś jakiś pomysł jak coś takiego osiągnąć przy użyciu php?

3 odpowiedzi

0 głosów
odpowiedź 8 lipca 2018 przez Mariusz08 Maniak (62,300 p.)
wybrane 9 lipca 2018 przez RobertBaj
 
Najlepsza
komentarz 9 lipca 2018 przez RobertBaj Użytkownik (810 p.)
Dzięki za podpowiedż, już mam pomysł na skrypt.
0 głosów
odpowiedź 8 lipca 2018 przez Comandeer Guru (602,340 p.)
Zapisać w bazie danych czas jego ustawienia i nie pozwalać zmienić hasła jeśli od tego czasu minęło za dużo erm… czasu?
0 głosów
odpowiedź 10 lipca 2018 przez RobertBaj Użytkownik (810 p.)

Stworzyłem taki scrypt:

Po rozpoczęciu procesu resetu hasła w innym pliku generowany jest token z datą i godziną w postaci timestamp, zapisuje go w bazie danych a do użytkownika leci link do resetu hasła. Po kliknięciu w link poniższy kod sprawdza ważność tokena i wykonuje kod w zależności czy link jest ważny czy nie.

if(isset($_GET['username']) && !empty($_GET['username']) AND isset($_GET['hash']) && !empty($_GET['hash']) AND isset($_GET['token']) && !empty($_GET['token'])) {

  $username = mysqli_real_escape_string($connect, $_GET['username']);
  $hash = mysqli_real_escape_string($connect, $_GET['hash']);
  $token = mysqli_real_escape_string($connect, $_GET['token']);

        //check if token is still valid
        $sql = "SELECT * FROM passres WHERE u_token='$token'";
        $result = mysqli_query($connect, $sql);
        $dbTimestamp = $result->fetch_assoc();

        $resetTime = $dbTimestamp['u_resetTime'];
        $date = date_create();
        $currenTime = date_timestamp_get($date);
        if ($currenTime - $resetTime > 3600) {
        echo $_SESSION['msg_error'] = "Sorry, reset link already expired. Please try again.";
        header('Location: index.html');
        exit();
        } else {

Scrypt działa i spełnia swoja funkcje.

komentarz 10 lipca 2018 przez Mariusz08 Maniak (62,300 p.)
dlaczego naprzemiennie używasz && i AND?
komentarz 10 lipca 2018 przez Mariusz08 Maniak (62,300 p.)

Poza tym currentTimestamp

komentarz 10 lipca 2018 przez RobertBaj Użytkownik (810 p.)
Literówka - poprawie, dzięki. A co złego jest w takim naprzemiennym używaniu? Spotkałem się z takim użyciem w kilku projektach programistów lepszych ode mnie, więc nie widziałem w tym nic złego.
komentarz 11 lipca 2018 przez Mariusz08 Maniak (62,300 p.)

 A co złego jest w takim naprzemiennym używaniu? 

Twój kod nie jest spójny. Poza tym jeśli chciałbyś pisać kod zgodny ze standardami to polecam lekturę standardu PSR-2

Spotkałem się z takim użyciem w kilku projektach programistów lepszych ode mnie, więc nie widziałem w tym nic złego.

Jeśli używa tylko && albo tylko AND to jest ok - jeśli ktoś używa tego naprzemiennie to może tylko wie więcej od Ciebie, ale nie jest lepszym programistą. Poza tym jego kod nie jest spójny + nie przestrzega ww. standardu PSR-2

PHP keywords MUST be in lower case.

The PHP constants true, false, and null MUST be in lower case.

 

komentarz 11 lipca 2018 przez RobertBaj Użytkownik (810 p.)
Ok, dzięki za wytłumaczenie. Przejrzę to i poprawie.

Podobne pytania

0 głosów
1 odpowiedź 582 wizyt
pytanie zadane 13 listopada 2017 w PHP przez Ambroz Obywatel (1,840 p.)
0 głosów
1 odpowiedź 204 wizyt
pytanie zadane 14 lutego 2019 w PHP przez Mateusz Kacprzak Początkujący (360 p.)
0 głosów
1 odpowiedź 242 wizyt
pytanie zadane 23 września 2018 w PHP przez Programista 22 Bywalec (2,270 p.)

92,626 zapytań

141,486 odpowiedzi

319,843 komentarzy

62,008 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!

...