Вход Регистрация
Файл: modules/recovery/ajax.php
Строк: 65
<?
if($CONFIG['uid']!=0) die('Access denied.');

switch(
$this->Act){

case 
'send':
      
$login = $_POST['email'];
      
$tmstmp = Core::MysqlSelect('users','`last_recovery`',array('email'=>$login));
      if(
filter_var($login, FILTER_VALIDATE_EMAIL) && is_array($tmstmp) && (strtotime('-1 day', time())>strtotime($tmstmp[0]['last_recovery']) ||  strtotime($tmstmp[0]['last_recovery'])=='0')){
      
  
$chars = 'abdefhiknrstyzABDEFGHKNQRSTYZ23456789';
  
$numChars = strlen($chars);
  
$string = '';
  for (
$i = 0; $i < 8; $i++) {
    
$string .= substr($chars, rand(1, $numChars) - 1, 1);
  }
  
$q = mysql_query("UPDATE `users` SET `code_recovery`='$string' WHERE email = '$login';");
        
$subject = 'Сброс пароля';
        
$key = Confirm::GenKey($login,$string.'recovery');
      
$message = '
      <html>
      <head>
        <title>Enterlike.com</title>
      </head>
      <body>
        <p>Здравствуйте. Вам нужно подтвердить сброс пароля на Enterlike.com <br />
        <a href="http://enterlike.com/ajax/recovery/confirm?email={login}&key={key}&code={code}">Сбросить</a></p>
        <p><br />Если кнопка "Сбросить" не работает, скопируйте следующую ссылку и откройте в своём браузере: http://enterlike.com/ajax/recovery/confirm?email={login}&key={key}&code={code}</p>
      </body>
      </html>
      '
;
      
$message = str_replace('{key}',$key,$message);
      
$message = str_replace('{login}',$login,$message);
      
$message = str_replace('{code}',$string,$message);

        
$m= new Mail("utf-8"); // начинаем 
        
$m->From( "info@enterlike.com" ); // от кого отправляется почта 
        
$m->To( $login ); // кому адресованно
        
$m->Subject( $subject );
        
$m->Body( $message , "html" );    
        
$m->smtp_on( "smtp.yandex.ru", "info@enterlike.com", "f9qxka52" ) ; // если указана эта команда, отправка пойдет через SMTP 
        
$m->Send();    // а теперь пошла отправка
        
echo 'ok';
        
//print_r($tmstmp);
      
} else {
        echo 
'err';
      }
break;


case 
'confirm':
      
$login = $_GET['email'];
      if(
filter_var($login, FILTER_VALIDATE_EMAIL)){
        
$key = Confirm::GenKey($login,$_GET['code'].'recovery');
        
$code = Core::MysqlSelect('users','`code_recovery`',array('email'=>$login));
        if(
$key==$_GET['key'] && $code[0]['code_recovery']==$_GET['code']){

  
$chars = 'abdefhiknrstyzABDEFGHKNQRSTYZ23456789';
  
$numChars = strlen($chars);
  
$password = '';
  for (
$i = 0; $i < 8; $i++) {
    
$password .= substr($chars, rand(1, $numChars) - 1, 1);
  }
  
      
$md5pass = md5(md5($password));
      
$q = mysql_query("UPDATE `users` SET `password`='$md5pass' WHERE email = '$login';");

      
$subject = 'Новый пароль';
      
$message = '
      <html>
      <head>
        <title>Enterlike.com</title>
      </head>
      <body>
        <p>Здравствуйте. Вы сбросили пароль на Enterlike.com<br />
        <p>Новый пароль: {password}</p>
      </body>
      </html>
      '
;
      
$message = str_replace('{password}',$password,$message);

        
$m= new Mail("utf-8"); // начинаем 
        
$m->From( "info@enterlike.com" ); // от кого отправляется почта 
        
$m->To( $login ); // кому адресованно
        
$m->Subject( $subject );
        
$m->Body( $message , "html" );    
        
$m->smtp_on( "smtp.yandex.ru", "info@enterlike.com", "f9qxka52" ) ; // если указана эта команда, отправка пойдет через SMTP 
        
$m->Send();    // а теперь пошла отправка
        
echo 'Новый пароль отправлен вам на email';
        
$q = mysql_query("UPDATE `users` SET `code_recovery`='0' WHERE email = '$login';");
        
        } else {
        echo 
'Ошибка! Пароль не может быть отправлен.';
        }
      }
break;

}
Онлайн: 1
Реклама