Автор Тема: Нужна помощь!  (Прочитано 1179 раз)

0 Пользователей и 1 Гость просматривают эту тему.

ТатьянаАвтор темы

  • *
  • Оффлайн
  • Награды Более 7 лет на форуме Более 10 сообщений Более 10 созданных тем
  • Дата регистрации: Нояб. 2016
  • Сообщений: 19
  • Страна: ru
  • Репутация +0/-1
  • Пол: Женский
Нужна помощь!
« : 02 Декабря 2016, 16:26:04 »
Здравствуйте. Как настроить восстановление пароля что бы на Emai приходило письмо. Что нужно править?
$_OPTIMIZATION["title"] = "Восстановление пароля";
$_OPTIMIZATION["description"] = "Восстановление забытого пароля";
$_OPTIMIZATION["keywords"] = "Восстановление забытого пароля";

if(isset($_SESSION["user_id"])){ Header("Location: /account"); return; }

?>







Спойлер


<div class="col-md-8">                        <div class="s-bk-lf">
                           <div class="title">Восстановление пароля</div>
                        </div>
                        <div class="silver-bk">





<?PHP

   if(isset($_POST["email"])){

      if(isset($_SESSION["captcha"]) AND strtolower($_SESSION["captcha"]) == strtolower($_POST["captcha"])){
      
      unset($_SESSION["captcha"]);
      
      $email = $func->IsMail($_POST["email"]);
      $time = time();
      $tdel = $time + 60*15;
      
         if($email !== false){
            
            $db->Query("DELETE FROM db_recovery WHERE date_del < '$time'");
            $db->Query("SELECT COUNT(*) FROM db_recovery WHERE ip = INET_ATON('".$func->UserIP."') OR email = '$email'");
            if($db->FetchRow() == 0){
            
               $db->Query("SELECT id, user, email, pass FROM db_users_a WHERE email = '$email'");
               if($db->NumRows() == 1){
               $db_q = $db->FetchArray();
               
               # Вносим запись в БД
               $db->Query("INSERT INTO db_recovery (email, ip, date_add, date_del) VALUES ('$email',INET_ATON('".$func->UserIP."'),'$time','$tdel')");
               
               # Отправляем пароль
               $sender = new isender;
               $sender -> RecoveryPassword($db_q["email"], $db_q["pass"], $db_q["email"]);
               
               echo "<center><font color = 'green'>Данные для входа отправлены на Email</font></center>";
               ?>
               </div>
               <div class="clr"></div>   
               <?PHP
               return;
               
               }else echo "<center><font color = 'red'>Пользователь с таким Email не зарегистрирован</font></center>";
            
            }else echo "<center><font color = 'red'>На Ваш Email или IP уже был отправлен пароль за последние 15 минут</font></center>";
            
         }else echo "<center><font color = 'red'>Email указан неверно</font></center>";
      
      }else echo "<center><font color = 'red'>Символы с картинки введены неверно</font></center>";
   
   }

?>

<BR />
<form action="" method="post">
<table width="550" border="0" cellspacing="0" cellpadding="0">
  <tr>
    <td align="left" width="250">Email (На него будет выслан пароль):</td>
    <td align="left" width="250"><input name="email" type="text" size="25" maxlength="50" value="<?=(isset($_POST["email"])) ? htmlspecialchars($_POST["email"]) : false; ?>"/></td>
  </tr>
 
  <tr>
    <td align="left" width="250" style="padding-top:20px;">
   <a href="#" onclick="ResetCaptcha(this);"><img src="/captcha.php?rnd=<?=rand(1,10000); ?>"  border="0" style="margin:0;"/>[/url]
   </td>
    <td align="left" width="250" style="padding-top:20px;">Введите символы с картинки<input name="captcha" type="text" size="25" maxlength="50" /></td>
  </tr>
 
  <tr>
    <td colspan="2" align="center"><BR /><input type="submit" value="Восстановить" style="height: 30px;"></td>
  </tr>
</table>
</form>
</div>
<div class="clr"></div>   
[свернуть]
 

khukazov

  • *
  • Оффлайн
  • Награды Более 7 лет на форуме Более 250 сообщений Более 10 созданных тем
  • Дата регистрации: Июль 2016
  • Возраст: 39
  • Сообщений: 277
  • Страна: ru
  • Поблагодарили: 8 раз(а)
  • Репутация +1/-0
  • Пол: Мужской
  • Дата рождения:
    1984-08-17
    Социальные сети:
    ВКонтакте
Нужна помощь!
« Ответ #1 : 02 Декабря 2016, 17:53:56 »
Здравствуйте. Как настроить восстановление пароля что бы на Emai приходило письмо. Что нужно править?
$_OPTIMIZATION["title"] = "Восстановление пароля";
$_OPTIMIZATION["description"] = "Восстановление забытого пароля";
$_OPTIMIZATION["keywords"] = "Восстановление забытого пароля";

if(isset($_SESSION["user_id"])){ Header("Location: /account"); return; }

?>







Спойлер


<div class="col-md-8">                        <div class="s-bk-lf">
                           <div class="title">Восстановление пароля</div>
                        </div>
                        <div class="silver-bk">





<?PHP

   if(isset($_POST["email"])){

      if(isset($_SESSION["captcha"]) AND strtolower($_SESSION["captcha"]) == strtolower($_POST["captcha"])){
      
      unset($_SESSION["captcha"]);
      
      $email = $func->IsMail($_POST["email"]);
      $time = time();
      $tdel = $time + 60*15;
      
         if($email !== false){
            
            $db->Query("DELETE FROM db_recovery WHERE date_del < '$time'");
            $db->Query("SELECT COUNT(*) FROM db_recovery WHERE ip = INET_ATON('".$func->UserIP."') OR email = '$email'");
            if($db->FetchRow() == 0){
            
               $db->Query("SELECT id, user, email, pass FROM db_users_a WHERE email = '$email'");
               if($db->NumRows() == 1){
               $db_q = $db->FetchArray();
               
               # Вносим запись в БД
               $db->Query("INSERT INTO db_recovery (email, ip, date_add, date_del) VALUES ('$email',INET_ATON('".$func->UserIP."'),'$time','$tdel')");
               
               # Отправляем пароль
               $sender = new isender;
               $sender -> RecoveryPassword($db_q["email"], $db_q["pass"], $db_q["email"]);
               
               echo "<center><font color = 'green'>Данные для входа отправлены на Email</font></center>";
               ?>
               </div>
               <div class="clr"></div>   
               <?PHP
               return;
               
               }else echo "<center><font color = 'red'>Пользователь с таким Email не зарегистрирован</font></center>";
            
            }else echo "<center><font color = 'red'>На Ваш Email или IP уже был отправлен пароль за последние 15 минут</font></center>";
            
         }else echo "<center><font color = 'red'>Email указан неверно</font></center>";
      
      }else echo "<center><font color = 'red'>Символы с картинки введены неверно</font></center>";
   
   }

?>

<BR />
<form action="" method="post">
<table width="550" border="0" cellspacing="0" cellpadding="0">
  <tr>
    <td align="left" width="250">Email (На него будет выслан пароль):</td>
    <td align="left" width="250"><input name="email" type="text" size="25" maxlength="50" value="<?=(isset($_POST["email"])) ? htmlspecialchars($_POST["email"]) : false; ?>"/></td>
  </tr>
 
  <tr>
    <td align="left" width="250" style="padding-top:20px;">
   <a href="#" onclick="ResetCaptcha(this);"><img src="/captcha.php?rnd=<?=rand(1,10000); ?>"  border="0" style="margin:0;"/>[/url]
   </td>
    <td align="left" width="250" style="padding-top:20px;">Введите символы с картинки<input name="captcha" type="text" size="25" maxlength="50" /></td>
  </tr>
 
  <tr>
    <td colspan="2" align="center"><BR /><input type="submit" value="Восстановить" style="height: 30px;"></td>
  </tr>
</table>
</form>
</div>
<div class="clr"></div>   
[свернуть]
А у Вас хостинг на бесплатном тарифе, если да то по этому может и не работать.
 

AlexGraur

  • *
  • Оффлайн
  • Награды Более 8 лет на форуме Более 100 сообщений
  • Дата регистрации: Апр. 2016
  • Расположение: Россия
  • Возраст: 33
  • Сообщений: 139
  • Страна: ru
  • Поблагодарили: 53 раз(а)
  • Репутация +4/-0
  • Пол: Мужской
  • Admin Гномограда-ДТВ
  • Дата рождения:
    1991-03-11
Нужна помощь!
« Ответ #2 : 02 Декабря 2016, 18:01:32 »
на хостинге должны работать почтовые роботы. Письма должен присылать робот. На некоторых хостингах это отдельная услуга или вообще отключено по умолчанию. Искать причину в коде бессмысленно)
 

romcka8

  • *
  • Оффлайн
  • Награды Более 8 лет на форуме Болеее 500 сообщений Топ 10 по сообщениям Более 10 созданных тем
  • Дата регистрации: Фев. 2016
  • Сообщений: 648
  • Страна: 00
  • Поблагодарили: 22 раз(а)
  • Репутация +2/-0
  • Пол: Мужской
Нужна помощь!
« Ответ #3 : 02 Декабря 2016, 21:20:51 »
Кстати , у большинства хотстеров функция mail() выключена , так-как через нее идет неконтролируемый спам. Нужно хостеру писать или через smtp.