Автор Тема: Регистрация новых участников  (Прочитано 3634 раз)

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

enclaveАвтор темы

  • *
  • Оффлайн
  • Награды Более 50 сообщений Более 6 лет на форуме !!!
  • Дата регистрации: Май 2016
  • Сообщений: 63
  • Страна: ru
  • Репутация +2/-0
  • Пол: Мужской
Всем доброго времени суток!
Проблема вот какая:
При регистрации можно любое мыло вписывать и регать более 2-х 3-х... аккаунтов, и в последствии перекидывать бонусы себе на основной аккаунт.
Как сделать, чтоб новому участнику проекта при регистрации, отправлялась ссылка подтверждения его e-mail(а)?
Если я не ошибаюсь этот файл отвечает за отправку: _class.isender.php
Сам код:
<?php
class isender{
   
   var $Hosts = "";
   
   /*======================================================================*\
   Function:   __construct
   Descriiption: Конструктор класса
   \*======================================================================*/
   function __construct(){
   
      $this->Hosts = str_replace("www.","",$_SERVER['HTTP_HOST']);
   
   }
   
   /*======================================================================*\
   Function:   SendRegKey
   Descriiption: Отправляет регистрационный ключ
   \*======================================================================*/
   function SendRegKey($mail, $key){
   
      $text = "На ваш Email была запрошена ссылка для регистрации в системе \"".$this->Hosts."\"<BR />";
      $text.= "Если вы не запрашивали ссылку, просто проигнорируйте это сообщение. <BR /><BR />";
      $text.= "Ссылка для регистрации: <a href='http://".$this->Hosts."/signup/key/{$key}'>";
      $text.= "http://".$this->Hosts."/signup/key/{$key}[/url]";
      $subject = "Регистрация в системе \"".$this->Hosts."\"";
      
      return $this->SendMail($mail, $subject, $text);
      
   }
   
   /*======================================================================*\
   Function:   RecoveryPassword
   Descriiption: Восстановление пароля
   \*======================================================================*/
   function RecoveryPassword($user, $pass, $mail){
   
      $text.= "Данные для входа в личный кабинет пользователя: <BR />";
      $text.= "Логин: {$user}<BR />";
      $text.= "Пароль: {$pass}<BR />";
      $text.= "Ссылка для входа в кабинет: <a href='http://".$this->Hosts."/signin'>http://".$this->Hosts."/signin[/url]";
      $subject = "Восстановление забытого пароля в системе \"".$this->Hosts."\"";
      
      return $this->SendMail($mail, $subject, $text);
      
   }
   
   /*======================================================================*\
   Function:   SendAfterReg
   Descriiption: Отправляет данные после регистрации
   \*======================================================================*/
   function SendAfterReg($user, $mail, $pass){
   
      $text = "Благодарим вас за регистрацию в системе в системе \"".$this->Hosts."\"<BR />";
      $text.= "Ваши данные для входа в личный кабинет пользователя: <BR />";
      $text.= "Логин: {$user}<BR />";
      $text.= "Пароль: {$pass}<BR />";
      $text.= "Ссылка для входа в кабинет: <a href='http://".$this->Hosts."/signin'>http://".$this->Hosts."/signin[/url]";
      $subject = "Завершение регистрации в системе \"".$this->Hosts."\"";
      
      return $this->SendMail($mail, $subject, $text);
      
   }
   
   /*======================================================================*\
   Function:   SetNewPassword
   Descriiption: Отправляет данные после смены пароля
   \*======================================================================*/
   function SetNewPassword($user, $pass, $mail){
   
      $text = "В настройках вашего аккаунта был изменен пароль<BR />";
      $text.= "Ваши новые данные для входа в личный кабинет пользователя: <BR />";
      $text.= "Логин: {$user}<BR />";
      $text.= "Новый пароль: {$pass}<BR />";
      $text.= "Ссылка для входа в кабинет: <a href='http://".$this->Hosts."/signin'>http://".$this->Hosts."/signin[/url]";
      $subject = "Смена пароля в системе \"".$this->Hosts."\"";
      
      return $this->SendMail($mail, $subject, $text);
      
   }
   
   
   /*======================================================================*\
   Function:   Headers
   Descriiption: Создание заголовков письма
   \*======================================================================*/
   function Headers(){
   
   $headers = "MIME-Version: 1.0\r\n";
   $headers.= "Content-type: text/html; charset=Windows-1251\r\n";
   $headers.= "Date: ".date("m.d.Y (H:i:s)",time())."\r\n";
   $headers.= "From: support@".$this->Hosts." \r\n";
   
      return $headers;
   
   }
   
   /*======================================================================*\
   Function:   SendMail
   Descriiption: Отправитель
   \*======================================================================*/
   function SendMail($recipient, $subject, $message){
   
      $message .= "<BR />----------------------------------------------------
      <BR />Сообщение было выслано роботом, пожалуйста, не отвечайте на него!";
      return (mail($recipient, $subject, $message, $this->Headers())) ? true : false;
   
   }
   
   
   
}
?>
 

maks161

  • *
  • *
  • *
  • *
  • Оффлайн
  • Награды Более 7 лет на форуме Более 1750 сообщений Репутация более 15 Топ 10 по созданным темам Топ 10 по сообщениям За финансовую помощь форуму !!! Благодарность от форума Более 50 созданных тем За время в онлайне на форуме
  • Дата регистрации: Янв. 2016
  • Расположение: Ростов-на-Дону
  • Возраст: 38
  • Сообщений: 1757
  • Страна: ru
  • Поблагодарили: 146 раз(а)
  • Репутация +22/-5
  • Пол: Мужской
  • Дата рождения:
    1984-03-10
Регистрация новых участников
« Ответ #1 : 25 Мая 2016, 00:15:53 »
здесь есть на форуме скрипт! раздел бесплатно скрипты фф скачай скрипт алкоферма в нем рега по емайлу,вытащи и поставь к себе!
 

enclaveАвтор темы

  • *
  • Оффлайн
  • Награды Более 50 сообщений Более 6 лет на форуме !!!
  • Дата регистрации: Май 2016
  • Сообщений: 63
  • Страна: ru
  • Репутация +2/-0
  • Пол: Мужской
Регистрация новых участников
« Ответ #2 : 26 Мая 2016, 19:18:05 »
Скачал скрипт, узнал, что за регистрацию отвечает файл: "_signup.php"
Скопировал код с алкофермы с заменой.
Всё заработало, но при условии, что на хостинге создан почтовый аккаунт!

maks161 выражаю вам свою благодарность :be happy:
 

enclaveАвтор темы

  • *
  • Оффлайн
  • Награды Более 50 сообщений Более 6 лет на форуме !!!
  • Дата регистрации: Май 2016
  • Сообщений: 63
  • Страна: ru
  • Репутация +2/-0
  • Пол: Мужской
Регистрация новых участников
« Ответ #3 : 26 Мая 2016, 22:53:44 »
Назрел ещё один вопрос:

Как увеличить число вводимых символов в поле, где прописываешь логин при регистрации, с 10 до 20 знаков?

Изменение значения в базе данных всех varchar(10) на varchar(20) результатов не дали!
 

enclaveАвтор темы

  • *
  • Оффлайн
  • Награды Более 50 сообщений Более 6 лет на форуме !!!
  • Дата регистрации: Май 2016
  • Сообщений: 63
  • Страна: ru
  • Репутация +2/-0
  • Пол: Мужской
Регистрация новых участников
« Ответ #4 : 31 Мая 2016, 22:08:21 »
Решил таки проблему :be happy:
В файле; _class.func.php

/*======================================================================*\
   Function:   IsLogin
   Output:      True / False
   Input:      Строка логина, Маска, Длина ("10, 25") && ("10")
   Descriiption: Проверяет правильность ввода логина
   \*======================================================================*/
   public function IsLogin($login, $mask = "^[a-zA-Z0-9]", $len = "{4,10}"){

      return (is_array($login)) ? false : (preg_match("/{$mask}{$len}$/", $login)) ? $login : false;

   }

   /*======================================================================*\

Заменим $len = "{4,10}" на $len = "{4,20}" и уже можно вписывать логин из 20-ти символов.

Ещё нужно поправить в файле: _signup.php

<td align="left" style="padding:3px;">Ваш Логин: <font color="#FF0000">*</font></td>
    <td align="left" style="padding:3px;"><input name="login" type="text" size="25" maxlength="20" value="<?=(isset($_POST["login"])) ? $_POST["login"] : false; ?>"/></td>
maxlength="10" изменить на "20"
 

den1978

  • *
  • Оффлайн
  • Награды Три года на форуме !!!
  • Дата регистрации: Март 2019
  • Сообщений: 3
  • Страна: ua
  • Репутация +0/-0
  • Пол: Мужской
Регистрация новых участников
« Ответ #5 : 29 Марта 2019, 17:51:36 »
А что делать если не приходит подтверждение на почту для регистрации?