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

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

Kod PHP:
<?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:
<?php 
$this
->AppTitle = $Lang['l1_a1_activate'];

Drukujemy nagłówek. 

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

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

Kod PHP:
<?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:
<?php 
$this
->AppSendEmail();

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

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

Kod PHP:
<?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:
<?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:
<?php 
$this
->ActivateForm();
}
      }
protected function
ActivateForm()
  {
  global $Lang;

Metoda zawierająca wydrukowanie formularza.

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