Ocena wątku:
  • 0 głosów - średnia: 0
  • 1
  • 2
  • 3
  • 4
  • 5
Zmiana hasła do konta
#1
Kod PHP:
<?php 

Deklarujemy klasę , która będzie rozszerzeniem klasy z silnika systemu.

Kod PHP:
class AppClass extends Core
  


Metoda , która zostanie uruchomiona jako pierwsza po zainicjalizowaniu obiektu.
   

Kod PHP:
public function AppStart()
  {
  global $Lang

Definiujemy tytuł strony
       
Kod PHP:
$this->AppTitle $Lang['tit_profile']; 

Tworzymy nagłówek strony , który pozwoli na zorientowanie się użytkownikowi , w którym miejscu obecnie się znajduje. 

Kod PHP:
        $this->AppBody .= '<h1>'.$Lang['tit_profile'].'</h1>';
if(
$this->AppSessionGetValue('user_id') == "")
  

Kiedy użytkownik nie jest zalogowany , wyświetlony zostanie komunikat informujący , iż osoba nie ma praw dostępu. 

Kod PHP:
            $this->AppBody .= $this->AppPrintWarning($Lang['login_needed']);
}
else
  

Jeżeli użytkownik zalogował się na swoje konto , można pokazać formularz do zmiany hasła za pomocą metody. 

Kod PHP:
            $this->ChangePassword();
}

      }
protected function 
ChangePassword()
  {
  global $Lang

Sprawdzamy czy formularz został wysłany.
       

Kod PHP:
if($_POST['option'] == 'password')
  

Wszystkie pola w formularzu powinny zostać wypełnione , a jeżeli którekolwiek zostało puste , wyświetlamy użytkownikowi komunikat.
           

Kod PHP:
if($_POST['user_pswd'] == "" OR $_POST['user_pswd_new'] == "" OR $_POST['user_pswd_new_rec'] == "")
  {
  $this->AppBody .= $this->AppPrintWarning($Lang['null_fields']);
}
else
  

Wybieramy dane użytkownika. 

Kod PHP:
                $SqlConfig 'SELECT user_id,user_pswd FROM '.$this->DBPrefix.'user
        WHERE
        user_id = "'
.$this->AppDBSecure($_SESSION['user_id']).'"
        '
;
        if(!$this->AppDBQuery($SqlConfig))
          {
          $this->AppBody .= $this->AppShowError('Query error'__FILE__,__LINE__,$SqlConfig);
        }
        $Result $this->AppDBResult();
        $Rows $this->AppDBHowMany(); 

Sprawdzamy , czy stare hasło podane w formularzu jest takie samo jak zapisane w bazie danych.

Kod PHP:
                if($this->AppDBUnsecure($Result[0]['user_pswd']) == md5($_POST['user_pswd']))
  

Upewniamy się , że nowo zdefiniowane hasło ma osiem lub więcej znaków.
                   

Kod PHP:
if(strlen($_POST['user_pswd_new']) >= 8)
  

Porównujemy nowe hasło wraz z jego potwierdzeniem.
                       

Kod PHP:
if($_POST['user_pswd_new'] == $_POST['user_pswd_new_rec'])
  

Kiedy wszystkie warunki są spełnione , możemy zaktualizować dane użytkownika.
                           

Kod PHP:
$SqlConfig 'UPDATE '.$this->DBPrefix.'user
                    SET
                    user_pswd = "'
.$this->AppDBSecure(md5($_POST['user_pswd_new'])).'"
                    WHERE
                    user_id = "'
.$this->AppDBSecure($_SESSION['user_id']).'"';
                    if(!$this->AppDBQuery($SqlConfig))
                      {
                      $this->AppBody .= $this->AppShowError('Query error'__FILE__,__LINE__,$SqlConfig);
                    

Wyświetlamy odpowiedni komunikat o udanej akcji. 

Kod PHP:
                            $this->AppBody .= $this->AppPrintSuccess($Lang['profile_pass_actualized']);
}
else
  

W przypadku gdyby hasło nie pasowało do jego potwierdzenia , należy wyświetlić błąd.

Kod PHP:
                            $this->AppBody .= $this->AppPrintWarning($Lang['profile_password_not_match']);
}
}
else
  

Jeżeli nowe hasło jest zbyt krótkie , informujemy o tym użytkownika.
                       

Kod PHP:
$this->AppBody .= $this->AppPrintWarning($Lang['profile_to_short_password']);
}
}
else
  

Kiedy hasło podane w formularzu nie zgadza się z hasłem zapisanym w bazie danych , drukujemy informację o wystąpieniu błędu.


Kod PHP:
$this->AppBody .=->AppPrintWarning($Lang['profile_bad_password']);
}
}


Tworzymy formularz przeznaczony do zmiany hasła.

Kod PHP:
$this->AppBody .= $Lang['req_filds'].'<form action="'.$this->AppUrl.'index.php" method="post"><table cellpadding="0" cellspacing="0" border="0"><tr><td class="cell_1">'.$Lang['profile_old_password'].'</td><td class="cell_1"><input type="password" name="user_pswd" /></td></tr><tr><td class="cell_2">'.$Lang['profile_new_password'].'</td><td class="cell_2"><input type="password" name="user_pswd_new" /></td></tr><tr><td class="cell_1">'.$Lang['profile_new_password_rec'].'</td><td class="cell_1"><input type="password" name="user_pswd_new_rec" /></td></tr><tr><td class="cell_2"><input type="hidden" name="app" value="changepassword" /><input type="hidden" name="option" value="password" /></td><td class="cell_2"><input type="submit" value="'.$Lang['profile_submit_password'].'" /></td></tr></table></form>';
}
}
?>
Odpowiedz


Skocz do:


Użytkownicy przeglądający ten wątek: 1 gości