Changeset 96 for devel/www/user.php


Ignore:
Timestamp:
Jul 31, 2008, 12:09:43 PM (16 years ago)
Author:
george
Message:
  • Přidáno: Možnost zobrazit aktuality v samostném okně po kliknutí.
  • Přidáno: Funkce obnovení zapomenutého hesla uživatele.
File:
1 edited

Legend:

Unmodified
Added
Removed
  • devel/www/user.php

    r87 r96  
    1212define('USER_LOGGED_OUT', 'Byl jste odhlášen.');
    1313define('BAD_PASSWORD', 'Špatné heslo.');
     14define('USER_NOT_FOUND', 'Uživatele nenalezen.');
    1415define('USER_TIMEOUT', 300);  // in seconds
     16define('USER_PASSWORD_RECOVERY_SUCCESS', 'Přihlašovací údaje byly odeslány na zadanou emailovou adresu.');
     17define('USER_PASSWORD_RECOVERY_FAIL', 'Podle zadaných údajů nebyl nalezen žádný uživatel.');
     18define('USER_PASSWORD_RECOVERY_CONFIRMED', 'Nové heslo bylo aktivováno.');
    1519
    1620define('USER_EVENT_REGISTER', 1);
     
    2630  var $DefaultRole = 2;
    2731  var $AnonymousUserId = 1;
    28  
     32
    2933  function Check()
    3034  {
     
    181185    } else return(false);
    182186  }
     187
     188  function PasswordRecoveryRequest($Name, $Email)
     189  {
     190    global $Config;
     191
     192    $DbResult = $this->Database->select('User', 'Name, Id, Email, Password', '`Name`="'.$Name.'" AND `Email`="'.$Email.'"');
     193    if($DbResult->num_rows > 0)
     194    {
     195      $Row = $DbResult->fetch_array();
     196      $NewPassword = substr(sha1(strtoupper($Row['Name'])), 0, 7);
     197
     198      $Subject = 'Obnova hesla';
     199      $Message = 'Požádali jste o zaslání nového hesla na serveru <a href="http://'.$Config['Web']['Host'].$Config['Web']['RootFolder'].'">http://'.$Config['Web']['Host'].$Config['Web']['RootFolder']."</a>.<br>\nPokud jste tak neučinili, měli by jste tento email ignorovat.<br><br>\n\nVaše nové heslo k účtu ".$Row['Name']." je: ".$NewPassword."\n<br>Pro aktivaci tohoto hesla klikněte na ".'<a href="http://'.$Config['Web']['Host'].$Config['Web']['RootFolder'].'/?Action=PasswordRecoveryConfirm&amp;User='.$Row['Id'].'&amp;H='.$Row['Password'].'&amp;P='.$NewPassword.'">tento odkaz</a>.'."\n<br> Po přihlášení si prosím změňte heslo na nové.\n\n<br><br>Na tento email neodpovídejte.";
     200      $AdditionalHeaders = "To: ".$Row['Name']." <".$Row['Email'].">\n"."From: ".from_utf8($Config['Web']['Title'], 'iso2')." <noreplay@zdechov.net>\n"."MIME-Version: 1.0\n"."Content-type: text/html; charset=utf-8";
     201      mail($Row['Email'], $Subject, $Message, $AdditionalHeaders);
     202      $Output = USER_PASSWORD_RECOVERY_SUCCESS;
     203    } else $Output = USER_PASSWORD_RECOVERY_FAIL;
     204    return($Output);
     205  }
     206
     207  function PasswordRecoveryConfirm($Id, $Hash, $NewPassword)
     208  {
     209    $DbResult = $this->Database->select('User', 'Id, Name, Password', 'Id = '.$Id);
     210    if($DbResult->num_rows > 0)
     211    {
     212      $Row = $DbResult->fetch_array();
     213      $NewPassword2 = substr(sha1(strtoupper($Row['Name'])), 0, 7);
     214      if(($NewPassword == $NewPassword2) and ($Hash == $Row['Password']))
     215      {
     216        $this->Database->update('User', 'Id='.$Row['Id'], array('Password' => sha1($NewPassword)));
     217        $Output = USER_PASSWORD_RECOVERY_CONFIRMED;
     218      } else $Output = PASSWORDS_UNMATCHED;
     219    } else $Output = USER_NOT_FOUND;
     220    return($Output);
     221  }
    183222}
    184223
Note: See TracChangeset for help on using the changeset viewer.