Ocena wątku:
  • 0 głosów - średnia: 0
  • 1
  • 2
  • 3
  • 4
  • 5
Generowanie 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

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(=> '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'); 

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']);
}
}
      }
}
?>
Odpowiedz


Skocz do:


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