05-12-2025, 09:49 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;
W pasku tytułu przeglądarki znajdzie się nazwa obecnej podstrony.
Kod PHP:
$this->AppTitle = $Lang['tit_reminder'];
Tworzymy nagłówek strony.
Kod PHP:
$this->AppBody .= '<h1>'.$Lang['tit_reminder'].'</h1>';
if($_POST['option'] == 'password')
{
Jeżeli wybrano przypomnienie hasła , sprwdzamy , czy wszystkie pola zostały wypełnione , jeśli nie , wyświetlamy odpowiedni komunikat .
Kod PHP:
if($_POST['user_email'] == "")
{
$this->AppBody .= $this->AppPrintWarning($Lang['null_fields']);
}
else
{
Z tabeli z użytkownikami wybieramy dane na jego temat.
Kod PHP:
$SqlConfig = 'SELECT user_id,user_email user FROM '.$this->DBPrefix.'user
WHERE
user_email = "'.$this->AppDBSecure($_POST['user_email']).'"
AND
user_active = "y"
';
if(!$this->AppDBQuery($SqlConfig))
{
$this->AppBody .= $this->AppShowError('Query error'__FILE__,__LINE__,$SqlConfig);
}
$Result = $this->AppDBResult();
$Rows = $this->AppDBHowMany();
Jeżeli liczba wyników jest równa jeden , można rozpocząć proces generowania nowego hasła.
Kod PHP:
if($Rows == 1)
{
Tworzymy tabelę , z której bedzie losowana wartość.
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');
$SpecialCode = '';
Losujemy nowy ciąg znaków.
Kod PHP:
for($i=0;$i<24;$i++)
{
$SpecialCode .= $ArrayToRand[array_rand($ArrayToRand)];
}
Analizujemy dane użytkownika.
Kod PHP:
$SqlConfig = 'UPDATE '.$this->DBPrefix.'user
SET
user_special_code = "'.$this->AppDBSecure($SpecialCode).'"
WHERE
user_email = "'.$this->AppDBSecure($Result[0]['user_email']).'"
';
if(!$this->AppDBQuery($SqlConfig))
{
$this->AppBody .= $this->AppShowError('Query error'__FILE__,__LINE__,$SqlConfig);
}
Informujemy komunikatem o poprawnym zakończeniu operacji.
Kod PHP:
$this->AppBody .= $this->AppPrintSuccess($Lang['l1_a7_check_your_inbox']);
Tworzymy list email , który zostanie wysłany do użytkownika.
Kod PHP:
$ContentOfLetter = $Lang['l1_a7_email'].$this->AppUrl.'index.php?app=generatepswd&user_id='.$Result[0]['user_id'].'&hashcode='.$SpecialCode.$Lang['l1_a7_email2'];
$this->AppSendTo = $this->AppDBUnsecure($Result[0]['user_email']);
$this->AppSendFrom = $this->DBConfigTable['admin_email'];
$this->AppSendTopic = $Lang['l1_a7_email_topic'];
$this->AppSendContent = $ContentOfLetter;
$this->AppSendHeaders = 'txt';
Wysyłamy list.
Kod PHP:
$this->AppSendEmail();
Tworzymy zmienną , która spowoduje ukrycie formularza.
Kod PHP:
$AppShowForm = TRUE;
}
else
{
W przypadku gdyby liczba rekordów była inna od jeden , wyświetlamy błąd.
Kod PHP:
$this->AppBody .= $this->AppPrintWarning($Lang['l1_a7_no_account_not_active']);
}
}
}
if(!$AppShowForm)
{
Kiedy zmienna ma wartość FALSE , wyświetlamy formularz za pomocą metody.
Kod PHP:
$this->PasswordForm();
}
}
protected function PasswordForm()
{
global $Lang;
Tworzymy formularz do przypominania hasła.
Kod PHP:
$this->AppBody .= '<center><form action="'.$this->AppUrl.'index.php" method="post"><table cellpadding="0" cellspacing="0" border="0"><tr><td class="cell_1">'.$Lang['l1_a7_get_your_email'].'</td><td class="cell_1"><input type="text" name="user_email" class="input_register" /></td><td class="cell_1"><input type="hidden" name="app" value="password" /><input type="hidden" name="option" value="password" /><td class="cell_1"><input type="submit" value="'.$Lang['rem_send_pass'].'" class="input_button_submit" /></td></tr></table></form></center>';
}
}
?>