Ocena wątku:
  • 0 głosów - średnia: 0
  • 1
  • 2
  • 3
  • 4
  • 5
Tworzenie nowego hasła
#1
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(=> 'a'=> 'b'=> 'c'=> 'd'=> 'e'=> 'f'=> 'g'=> 'h'=> '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>';
}
}
?>
Odpowiedz


Wiadomości w tym wątku
Tworzenie nowego hasła - przez Admin - 05-12-2025, 09:49 AM

Skocz do:


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