05-12-2025, 10:16 AM
Kod PHP:
<?php
Tworzymy klasę rozszerzającą dla klasy głównej.
Kod PHP:
class AppClass extends Core
{
Metoda , która zostanie uruchomiona jako pierwsza po zainicjalizowaniu obiektu.
Kod PHP:
public function AppStart()
{
global $Lang;
Wpisujemy do paska tytułu położenie.
Kod PHP:
$this->AppTitle = $Lang['l1_a4_generate_pswd_header'];
Drukujemy nagłówek strony.
Kod PHP:
$this->AppBody .= '<h1>'.$Lang['l1_a4_generate_pswd_header'].'</h1>';
Sprawdzamy czy zostały podane odpowiednie informacje w adresie URL , i w razie ich braku drukujemy odpowiedni komunikat.
Kod PHP:
if($_GET['user_id'] == "" OR $_GET['hashcode'] == "")
{
$this->AppBody .= $this->AppPrintWarning($Lang['l1_a4_no_data_in_url']);
}
else
{
Wybieramy użytkownika za pomocą danych przekazanych przez URL.
Kod PHP:
$SqlConfig = 'SELECT user_id FROM '.$this->DBPrefix.'user
WHERE
user_id = "'.$this->AppDBSecure($_GET['user_id']).'"
AND
user_special_code = "'.$this->AppDBSecure($_GET['hashcode']).'"
AND
user_active = "y"
AND
user_ban != "y"
';
if(!$this->AppDBQuery($SqlConfig))
{
$this->AppBody .= $this->AppShowError('Query error'__FILE__,__LINE__,$SqlConfig);
}
$Result = $this->AppDBResult();
$Rows = $this->AppDBHowMany();
jeżeli liczba rekordów jest równa jeden , możemy zacząć tworzenie nowego hasła.
Kod PHP:
if($Rows == 1)
{
Tablica , z której będzie losowane nasze nowe hasło przeznaczone dla użytkownika.
Kod PHP:
$ArrayToRand = array(1 => 'a', 2 => 'b', 3 => 'c', 4 => 'd', 5 => 'e', 6 => 'f', 7 => 'g', 8 => 'h', 9 => 'i', 10 => 'j', 11 => 'k', 12 => 'l', 13 => 'm', 14 => 'n', 15 => 'o', 16 => 'p', 17 => 'q', 18 => 'r', 19 => 's', 20 => 't', 21 => 'u', 22 => 'w', 23 => 'x', 24 => 'y', 25 => 'z', 26 => '1', 27 => '2', 28 => '3', 29 => '4', 30 => '5', 31 => '6', 32 => '7', 33 => '8', 34 => '9', 35 => '0');
Losowanie hasła o długości dziesięciu znaków.
Kod PHP:
$SpecialCode = '';
for($i=0;$i<10;$i++)
{
$SpecialCode .= $ArrayToRand[array_rand($ArrayToRand)];
}
Aktualizujemy rekord w bazie danych ustawiając nowe hasło.
Kod PHP:
$SqlConfig = 'UPDATE '.$this->DBPrefix.'user
SET
user_pswd = "'.$this->AppDBSecure(md5($SpecialCode)).'"
WHERE
user_id = "'.$this->AppDBSecure($_GET['user_id']).'"
AND
user_special_code = "'.$this->AppDBSecure($_GET['hashcode']).'"
';
if(!$this->AppDBQuery($SqlConfig))
{
$this->AppBody .= $this->AppShowError('Query error'__FILE__,__LINE__,$SqlConfig);
}
Wyświetlamy komunikat użytkownikowi.
Kod PHP:
$this->AppBody .= $this->AppPrintSuccess($Lang['l1_a4_your_password_changed']);
Tworzymy list e-mail z jego nowym hasłem.
Kod PHP:
$ContentOfLetter = $Lang['l1_a4_email'].$SpecialCode.$Lang['l1_a4_email2'];
$this->AppSendTo = $this->AppDBUnsecure($Result[0]['user_email']);
$this->AppSendFrom = $this->DBConfigTable['admin_email'];
$this->AppSendTopic = $Lang['l1_a4_email_topic'];
$this->AppSendContent = $ContentOfLetter;
$this->AppSendHeaders = 'txt';
Wysyłamy przygotowany email .
Kod PHP:
$this->AppSendEmail();
$AppShowForm = TRUE;
}
else
{
Gdyby liczba zwrócona przez bazę danych rekordów była inna niż jeden , drukujemy informację o tym , że adres został niepoprawnie wpisany .
Kod PHP:
$this->AppBody .= $this->AppPrintWarning($Lang['l1_a4_no_data_in_url2']);
}
}
}
}
?>