Ocena wątku:
  • 0 głosów - średnia: 0
  • 1
  • 2
  • 3
  • 4
  • 5
Resetowanie 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 należy zamieścić informację o sekcji , w której obecnie się znajdujemy.
       
Kod PHP:
$this->AppTitle $Lang['l1_a1_activate']; 

Drukujemy nagłówek. 

Kod PHP:
        $this->AppBody .= '<h1>'.$Lang['l1_a1_activate_account'].'</h1>';
if(
$_POST['option'] == 'password')
  

W przypadku prośby o przesłanie nowego hasła należy sprawdzić , czy pole z adresem e-mail zostało wypełnione , a jeżeli nie , wyświetlamy błąd. 

Kod PHP:
            if($_POST['user_email'] == "")
  {
  $this->AppBody .= $this->AppPrintWarning($Lang['null_fields']);
}
else
  

Wybieramy użytkownika po adresie przesłanym za pomocą formularza.
               

Kod PHP:
$SqlConfig 'SELECT user_id,user_email,user_code FROM '.$this->DBPrefix.'user
        WHERE
        user_email = "'
.$this->AppDBSecure($_POST['user_email']).'"
        AND
        user_active = ""
        '
;
        if(!$this->AppDBQuery($SqlConfig))
          {
          $this->AppBody .= $this->AppShowError('Query error'__FILE__,__LINE__,$SqlConfig);
        }
        $Result $this->AppDBResult();
        $Rows $this->AppDBHowMany(); 

Kiedy liczba rekordów jest równa jeden , oznacza to , iż sprawdzanie przebiegło pozytywnie.
               

Kod PHP:
if($Rows == 1)
  

Tworzymy list e-mail z łączem pozwalającym na reset hasła.
                   

Kod PHP:
$ContentOfLetter $Lang['reg_email_send'].$this->AppUrl.'index.php?app=account&user_email='.$this->AppDBUnsecure($Result[0]['user_email']).'&code='.$this->AppDBUnsecure($Result[0]['user_code']).''.$Lang['reg_email_second_send'];
$this->AppSendTo $this->AppDBUnsecure($Result[0]['user_email']);
$this->AppSendFrom $this->DBConfigTable['admin_email'];
$this->AppSendTopic $Lang['reg_activation'];
$this->AppSendContent $ContentOfLetter;
$this->AppSendHeaders 'txt'

Wysyłamy email.
                   
Kod PHP:
$this->AppSendEmail(); 

Drukujemy użytkownikowi odpowiedni komunikat.
                   
Kod PHP:
$this->AppBody .= $this->AppPrintSuccess($Lang['rem_mail_topic']); 

Do zmiennej przypisujemy wartość TRUE , aby formularz się nie wyświetlił.
                   

Kod PHP:
$AppShowForm TRUE;
}
else
  

W przypadku gdyby liczba rkordów była większa bądź mniejsza od jednego , informujemy użytkownika , iż nie ma takiego konta lub nie zostało ono aktywowane.
                   

Kod PHP:
$this->AppBody .= $this->AppPrintWarning($Lang['l1_a1_no_user_or_active']);
  }
}
}
if(!
$AppShowForm)
  

Kiedy w zmiennej jest ustawiona wartość FALSE , możemy wyświetlić formularz za pomocą metody.
           

Kod PHP:
$this->ActivateForm();
}
      }
protected function 
ActivateForm()
  {
  global $Lang

Metoda zawierająca wydrukowanie formularza.

Kod PHP:
$this->AppBody .= $Lang['req_filds'].'<form action="'.$this->AppUrl.'index.php" method="post"><table cellpadding="0" cellspacing="0" border="0"><tr><td class="cell_1">'.$Lang['user_login'].'</td><td class="cell_1"><input type="text" name="user_email" /></td></tr><tr><td class="cell_2"><input type="hidden" name="app" value="aagain" /><input type="hidden" name="option" value="password" /></td><td class="cell_2"><input type="submit" value="'.$Lang['l1_a1_send_email_button'].'" /></td></tr></table></form>';
}
}
?>
Odpowiedz


Skocz do:


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