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:
<?php 
class AppClass extends Core
 
{

Metoda , która zostanie uruchomiona jako pierwsza po zainicjalizowaniu obiektu.
   

Kod PHP:
<?php 
public function AppStart()
  {
  global $Lang;

Wpisujemy do paska tytułu położenie.
       
Kod PHP:
<?php 
$this
->AppTitle = $Lang['l1_a4_generate_pswd_header'];

Drukujemy nagłówek strony. 

     
Kod PHP:
<?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:
<?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:
<?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:
<?php 
if($Rows == 1)
{

Tablica , z której będzie losowane nasze nowe hasło przeznaczone dla użytkownika.
               
Kod PHP:
<?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:
<?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:
<?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:
<?php 
$this
->AppBody .= $this->AppPrintSuccess($Lang['l1_a4_your_password_changed']);

Tworzymy list e-mail z jego nowym hasłem.
               

Kod PHP:
<?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:
<?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:
<?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