05-12-2025, 10:38 AM
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>';
}
}
?>