Автор Тема: Регистрация  (Прочитано 1606 раз)

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

JohaАвтор темы

  • *
  • Оффлайн
  • Награды Более 7 лет на форуме Более 100 сообщений Более 10 созданных тем
  • Дата регистрации: Март 2017
  • Сообщений: 154
  • Страна: 00
  • Поблагодарили: 16 раз(а)
  • Репутация +4/-1
  • Пол: Мужской
    Социальные сети:
    ВКонтакте
Регистрация
« : 16 Мая 2017, 06:12:19 »
:preved: что нужно сделать на таких скритпах, там где перед регистрацией пишешь почту, и туда ссылку отправляют, можно ли сделать чтобы после ввода email сразу на страницу регистрации переходило

Добавлено сообщение: 16 Мая 2017, 06:14:08
Спойлер
<?PHP
$_OPTIMIZATION["title"] = "Регистрация";
$_OPTIMIZATION["description"] = "Регистрация пользователя в системе";
$_OPTIMIZATION["keywords"] = "Регистрация нового участника в системе";

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


if(!isset($_GET["key"])){


?>
<div class="silver-bk">
<div class="clr">
<div class="acc-title">Регистрация</div>
</div>
<BR />      
<center><p>Укажите Ваш Email, на него будет выслана ссылка для регистрации.</p></center>
<?PHP

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

      if(isset($_SESSION["captcha"]) AND strtolower($_SESSION["captcha"]) == strtolower($_POST["captcha"])){
      
      unset($_SESSION["captcha"]);
      
      $email = $func->IsMail($_POST["email"]);
      $referer_id = (isset($_COOKIE["i"]) AND intval($_COOKIE["i"]) > 0 AND intval($_COOKIE["i"]) < 1000000) ? intval($_COOKIE["i"]) : 1;
      $ttime = time();
      $tidex = time() - 60*15;
      
         if($email !== false){
         
         $db->Query("DELETE FROM db_regkey WHERE date_del < '".$ttime."' OR (date_add < '".$tidex."' AND email = '$email')");
         $db->Query("SELECT COUNT(*) FROM db_regkey WHERE email = '$email'");
         
            if($db->FetchRow() == 0){
            
               $db->Query("SELECT COUNT(*) FROM db_users_a WHERE email = '$email'");
               
               if($db->FetchRow() == 0){
               
               
                  # Узнаем реферера
                  if($referer_id != 1){
                  
                     $db->Query("SELECT user FROM db_users_a WHERE id = '$referer_id' LIMIT 1");
                     
                     if($db->NumRows() > 0){
                     
                        $referer_name = $db->FetchRow();
                     
                     }else{ $referer_id = 0; $referer_name = "admin"; }
                  
                  }else{ $referer_id = 1; $referer_name = "admin"; }
                  
                  
                  # Заносим запись в reg_key
                  $td = $ttime + 60*60;
                  $db->Query("INSERT INTO db_regkey (email, referer_id, referer_name, date_add, date_del)
                  VALUES ('$email','$referer_id','$referer_name','$ttime','$td')");
                  
                  $lid = $db->LastInsert();
                  $reg_key = $lid."-".md5($lid."_rfs_".$lid);
                  
                  # Отправляем на почту
                  $sender = new isender;
                  $sender -> SendRegKey($email, $reg_key);
                  
                  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'>За последние 15 минут Вы уже запрашивали ссылку для регистрации</font></center>";
         
         }else echo "<center><font color = 'red'>Email имеет неверный формат</font></center>";
      
      }else echo "<center><font color = 'red'>Символы с картинки введены неверно</font></center>";

   }
?>
<BR /><center>
<form action="" method="post">
<table width="500" 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"])) ? $_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="6" align="center" style="padding:3px;"><BR /><input name="registr" type="submit" value="Зарегистрироваться" class="btn_in"></td>
</tr>
</table>
</form>
</center><BR />
</div>
<?PHP

return;
}

# Регистрация
$_GET["key"] = (string) $_GET["key"];

$token_data = explode('-', $_GET["key"]);

$token_id = intval($token_data[0]);
$token_hash = (string) $token_data[1];
   
   if(strlen($token_hash) != 32){ echo "<center><font color = 'red'>Ссылка для регистрации не действительна</font></center><BR />"; return; }
   
   $tkey = md5($token_id."_rfs_".$token_id);
   if($token_hash != $tkey){ echo "<center><font color = 'red'>Ссылка для регистрации не действительна</font></center><BR />"; return; }
   
   $db->Query("SELECT * FROM db_regkey WHERE id = '$token_id' LIMIT 1");
   if($db->NumRows() != 1){ echo "<center><font color = 'red'>Ссылка для регистрации не действительна</font></center><BR />"; return; }
   
   $data_t = $db->FetchArray();
   $db->FreeMemory();
   
?>
<div class="silver-bk">
<div class="clr">
<div class="acc-title">Регистрация</div>
</div>
<BR />
<center><font color="red">Внимание!</font> Уважаемые пользователи, в целях безопасности, не создавайте одинаковые пароли в подобных проектах, пользуйтесь [url=http://randstuff.ru/password/]генераторами паролей[/url]</center>
<?PHP
   
   # Регистрация
   if(isset($_POST["login"])){
   
   $login = $func->IsLogin($_POST["login"]);
   $pass = $func->IsPassword($_POST["pass"]);
   $rules = isset($_POST["rules"]) ? true : false;
   $time = time();
   $ip = $func->UserIP;
   
   $referer_id = $data_t["referer_id"];
   $referer_name = $data_t["referer_name"];
   $email = $data_t["email"];
   
      if($rules){
      
         if($login !== false){
         
            if($pass !== false){
         
               if($pass == $_POST["repass"]){
                  
                  $db->Query("SELECT COUNT(*) FROM db_users_a WHERE user = '$login'");
                  if($db->FetchRow() == 0){
                  
                  # Регаем пользователя
                  $db->Query("INSERT INTO db_users_a (user, email, pass, referer, referer_id, date_reg, ip)
                  VALUES ('$login','{$email}','$pass','$referer_name','$referer_id','$time',INET_ATON('$ip'))");
                  
                  $lid = $db->LastInsert();
                  
                  $db->Query("INSERT INTO db_users_b (id, user) VALUES ('$lid','$login')");
                  
                  # Вставляем статистику
                  $db->Query("UPDATE db_stats SET all_users = all_users +1 WHERE id = '1'");
                  
                  # Удаляем рег кей
                  $db->Query("DELETE FROM db_regkey WHERE email = '$email' OR id = '$token_id'");
                  
                  echo "<center><font color = 'green'>Вы успешно зарегистрировались. Используйте форму слева для входа в аккаунт</font></center><BR />";
                  ?></div>
                  <div class="clr"></div>   
                  <?PHP
                  return;
                  }else echo "<center><font color = 'red'>Указанный логин уже используется</font></center><BR />";
                  
               }else echo "<center><font color = 'red'>Пароль и повтор пароля не совпадают</font></center><BR />";
         
            }else echo "<center><font color = 'red'>Пароль заполнен неверно</font></center><BR />";
         
         }else echo "<center><font color = 'red'>Логин заполнен неверно</font></center><BR />";
      
      }else echo "<center><font color = 'red'>Вы не подтвердили правила</font></center><BR />";
   
   }
      
?>
<BR /><center>
<form action="" method="post">
<table width="500" border="0" cellspacing="0" cellpadding="0">
  <tr>
    <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="10" value="<?=(isset($_POST["login"])) ? $_POST["login"] : false; ?>"/></td>
  </tr>
  <tr>
    <td colspan="2" align="left" style="padding:3px;">Поле псевдоним должно иметь от 4 до 10 символов (только англ. символы).</td>
    </tr>

  <tr>
    <td colspan="2" align="left">&nbsp;</td>
    </tr>
  <tr>
    <td align="left" style="padding:3px;">Пароль: <font color="#FF0000">*</font></td>
    <td align="left" style="padding:3px;"><input name="pass" type="password" size="25" maxlength="20" /></td>
  </tr>
  <tr>
    <td colspan="2" align="left" style="padding:3px;">Поле Пароль должно иметь от 6 до 20 символов (только англ. символы).</td>
    </tr>
  <tr>
    <td align="left" style="padding:3px;">Пароль еще раз: <font color="#FF0000">*</font></td>
    <td align="left" style="padding:3px;"><input name="repass" type="password" size="25" maxlength="20" /></td>
  </tr>
  <tr>
    <td colspan="2" align="left" style="padding:3px;">Пароли должны совпадать.</td>
    </tr>
  <tr>
    <td align="left" style="padding:3px;">Вас пригласил:</td>
    <td align="left" style="padding:3px;">[ID: <?=$data_t["referer_id"];?>] <?=$data_t["referer_name"];?></td>
  </tr>
  <tr>
    <td colspan="2" align="left">&nbsp;</td>
  </tr>
  <tr>
    <td colspan="2" align="left" style="padding:3px;">
   С <a href="/rules" target="_blank" class="stn">правилами[/url] проекта ознакомлен(а) и принимаю: <input name="rules" type="checkbox" /></td>
  </tr>
  <tr>
    <td colspan="2" align="left">&nbsp;</td>
  </tr>
  <tr>
    <td colspan="2" align="center" style="padding:3px;"><input name="registr" type="submit" value="Зарегистрироваться" style="height: 30px;"></td>
  </tr>
</table>
</form>
</center>
</div>
[свернуть]
 

assus

  • *
  • Оффлайн
  • Награды Более 8 лет на форуме Более 10 сообщений
  • Дата регистрации: Фев. 2016
  • Сообщений: 34
  • Страна: ru
  • Репутация +0/-0
  • Пол: Мужской
Регистрация
« Ответ #1 : 16 Мая 2017, 20:06:51 »
это в сети есть надо просто поискать.
a:0:{}
 

shans5

  • *
  • *
  • Оффлайн
  • Награды Более 8 лет на форуме За 1500 созданных тем более 4000 сообщений Репутация более 75 Топ 10 по созданным темам Топ 10 по сообщениям Бывает груб к участникам форума. За время в онлайне на форуме
  • Дата регистрации: Сен. 2015
  • Расположение: Регион 58
  • Возраст: 44
  • Сообщений: 4887
  • Страна: ru
  • Поблагодарили: 1356 раз(а)
  • Репутация +92/-10
  • Пол: Мужской
  • Всё только начинается !!!
  • Дата рождения:
    1979-06-30
Регистрация
« Ответ #2 : 16 Мая 2017, 20:28:31 »
Ну замени _signup.php с другого проекта
Подвергнуть критике, может любой.
Создать то,что будет подвергнуто критике,дано не каждому.
 

kvozimir

  • снова в skype --> kvozimir
  • *
  • *
  • Оффлайн
  • Награды Более 8 лет на форуме Более 2000 сообщений Топ 10 по сообщениям Топ 10 по созданным темам Репутация  более 25 Более 50 созданных тем Благодарность от форума За помощь пользователям За время в онлайне на форуме
  • Дата регистрации: Фев. 2016
  • Возраст: 32
  • Сообщений: 2028
  • Страна: ru
  • Поблагодарили: 242 раз(а)
  • Репутация +40/-1
  • Пол: Мужской
  • Дата рождения:
    1992-04-18
    Социальные сети:
    ВКонтакте
Регистрация
« Ответ #3 : 17 Мая 2017, 03:40:01 »
можно сделать,главное время и желание

 

JohaАвтор темы

  • *
  • Оффлайн
  • Награды Более 7 лет на форуме Более 100 сообщений Более 10 созданных тем
  • Дата регистрации: Март 2017
  • Сообщений: 154
  • Страна: 00
  • Поблагодарили: 16 раз(а)
  • Репутация +4/-1
  • Пол: Мужской
    Социальные сети:
    ВКонтакте
Регистрация
« Ответ #4 : 17 Мая 2017, 06:48:18 »
Я разобрался)
 

Vorsing

  • *
  • Оффлайн
  • Награды Более 6 лет на форуме !!! Более 50 сообщений За финансовую помощь форуму !!!
  • Дата регистрации: Май 2017
  • Расположение: Камчатка, Вилючинск
  • Возраст: 41
  • Сообщений: 65
  • Страна: ru
  • Поблагодарили: 3 раз(а)
  • Репутация +1/-0
  • Пол: Мужской
  • Дата рождения:
    1983-03-20
Регистрация
« Ответ #5 : 17 Мая 2017, 17:20:20 »
Я разобрался)
поделись опытом.
 

Andrey2015

  • *
  • Оффлайн
  • Награды Более 7 лет на форуме Более 50 сообщений Более 10 созданных тем
  • Дата регистрации: Апр. 2016
  • Сообщений: 75
  • Страна: ru
  • Поблагодарили: 1 раз(а)
  • Репутация +0/-0
  • Пол: Мужской
Регистрация
« Ответ #6 : 17 Мая 2017, 17:25:23 »
<?PHP
$_OPTIMIZATION["title"] = "Регистрация";
$_OPTIMIZATION["description"] = "Регистрация пользователя в системе";
$_OPTIMIZATION["keywords"] = "Регистрация нового участника в системе";

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


if(!isset($_GET["key"])){


?>
<td valign="top">
<div class="r_block">
<h1>Регистрация</h1>

<div class="">
<p>Укажите Ваш Email, он будет использоваться для входа в аккаунт.</p>

<?PHP

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

      if (!empty($_POST['g-recaptcha-response'])) {
      
      $email = $func->IsMail($_POST["email"]);
      $referer_id = (isset($_COOKIE["i"]) AND intval($_COOKIE["i"]) > 0 AND intval($_COOKIE["i"]) < 1000000) ? intval($_COOKIE["i"]) : 1;
      $ttime = time();
      $tidex = time() - 0;
      
         if($email !== false){
         
         $db->Query("DELETE FROM db_regkey WHERE date_del < '".$ttime."' OR (date_add < '".$tidex."' AND email = '$email')");
         $db->Query("SELECT COUNT(*) FROM db_regkey WHERE email = '$email'");
         
            
            
               $db->Query("SELECT COUNT(*) FROM db_users_a WHERE email = '$email'");
               
               if($db->FetchRow() == 0){
               
               
                  # Узнаем реферера
                  if($referer_id != 1){
                  
                     $db->Query("SELECT user FROM db_users_a WHERE id = '$referer_id' LIMIT 1");
                     
                     if($db->NumRows() > 0){
                     
                        $referer_name = $db->FetchRow();
                     
                     }else{ $referer_id = 1; $referer_name = "First"; }
                  
                  }else{ $referer_id = 1; $referer_name = "First"; }
                  
                  
                  # Заносим запись в reg_key
                  $td = $ttime + 60*1;
                  $db->Query("INSERT INTO db_regkey (email, referer_id, referer_name, date_add, date_del)
                  VALUES ('$email','$referer_id','$referer_name','$ttime','$td')");
                  
                  $lid = $db->LastInsert();
                  $reg_key = $lid."-".md5($lid."_rfs_".$lid);
                  
                  # Отправляем на почту
                  $sender = new isender;
                  $sender -> SendRegKey($email, $reg_key);
                  
                  
                  header("Location: /signup/key/".$reg_key);
                  ?></div>
                  <div class="clr"></div>   
                  <?PHP
                  return;
                  
               }else echo "<center><font color = 'red'>Указанный Email уже зарегистрирован в системе</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="500" 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;"><div class="g-recaptcha" data-sitekey="6LfJiiEUAAAAAO_wX-qNH-VYMoh10IL7cSRB9ilW"></div></td>
</tr>
<tr>
<td colspan="2" align="center"><BR /><input type="submit" value="Продолжить регистрацию" class="button" style="height: 35px; margin-top:10px;"></td>
</tr>
</table>
</form>
<BR />
</div>
<div class="clr"></div>   
<?PHP

return;
}

# Регистрация
$_GET["key"] = (string) $_GET["key"];

$token_data = explode('-', $_GET["key"]);

$token_id = intval($token_data[0]);
$token_hash = (string) $token_data[1];
   
   if(strlen($token_hash) != 32){ echo "<center><font color = 'red'>Ссылка для регистрации не действительна :(</font></center><BR />"; return; }
   
   $tkey = md5($token_id."_rfs_".$token_id);
   if($token_hash != $tkey){ echo "<center><font color = 'red'>Ссылка для регистрации не действительна :(</font></center><BR />"; return; }
   
   $db->Query("SELECT * FROM db_regkey WHERE id = '$token_id' LIMIT 1");
   if($db->NumRows() != 1){ echo "<center><font color = 'red'>Ссылка для регистрации не действительна :(</font></center><BR />"; return; }
   
   $data_t = $db->FetchArray();
   $db->FreeMemory();
   
?>
<td valign="top">
<div class="r_block">
<h1>Регистрация</h1>

<div class="">
<?PHP
   
   # Регистрация
   if(isset($_POST["login"])){
   
   $login = $func->IsLogin($_POST["login"]);
   $pass = $func->IsPassword($_POST["pass"]);
   $rules = isset($_POST["rules"]) ? true : false;
   $time = time();
   $ip = $func->UserIP;
   
   $referer_id = $data_t["referer_id"];
   $referer_name = $data_t["referer_name"];
   $email = $data_t["email"];
   
      if($rules){
      
         if($login !== false){
         
            if($pass !== false){
         
               if($pass == $_POST["repass"]){
                  
                  $db->Query("SELECT COUNT(*) FROM db_users_a WHERE user = '$login'");
                  if($db->FetchRow() == 0){
                  
                  # Регаем пользователя
                  $db->Query("INSERT INTO db_users_a (user, email, pass, referer, referer_id, date_reg, ip)
                  VALUES ('$login','{$email}','$pass','$referer_name','$referer_id','$time',INET_ATON('$ip'))");
                  
                  $lid = $db->LastInsert();
                  
               $db->Query("INSERT INTO db_users_b (id, user, a_t, last_sbor) VALUES ('$lid','$login','2', '".time()."')");
                  
                  # Вставляем статистику
                  $db->Query("UPDATE db_stats SET all_users = all_users +1 WHERE id = '1'");
                  
                  # Удаляем рег кей
                  $db->Query("DELETE FROM db_regkey WHERE email = '$email' OR id = '$token_id'");
                  
                  echo "<center><font color = 'green'>Вы успешно зарегистрировались. Используйте форму слева для входа в аккаунт</font></center><BR />";
                  ?></div>
                  <div class="clr"></div>   
                  <?PHP
                  return;
                  }else echo "<center><font color = 'red'>Указанный логин уже используется</font></center><BR />";
                  
               }else echo "<center><font color = 'red'>Пароль и повтор пароля не совпадают</font></center><BR />";
         
            }else echo "<center><font color = 'red'>Пароль заполнен неверно</font></center><BR />";
         
         }else echo "<center><font color = 'red'>Логин заполнен неверно</font></center><BR />";
      
      }else echo "<center><font color = 'red'>Вы не подтвердили правила</font></center><BR />";
   
   }
   
   
?>


<BR />
<form action="" method="post">
<table width="500" border="0" cellspacing="0" cellpadding="0">
  <tr>
    <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="10" value="<?=(isset($_POST["login"])) ? htmlspecialchars($_POST["login"]) : false; ?>"/></td>
  </tr>
  <tr>
    <td colspan="2" align="left" style="padding:3px;">Поле псевдоним должно иметь от 4 до 10 символов (только англ. символы).</td>
    </tr>

  <tr>
    <td colspan="2" align="left">&nbsp;</td>
    </tr>
  <tr>
    <td align="left" style="padding:3px;">Пароль: <font color="#FF0000">*</font></td>
    <td align="left" style="padding:3px;"><input name="pass" type="password" size="25" maxlength="20" /></td>
  </tr>
  <tr>
    <td colspan="2" align="left" style="padding:3px;">Поле Пароль должно иметь от 6 до 20 символов (только англ. символы).</td>
    </tr>
  <tr>
    <td align="left" style="padding:3px;">Пароль еще раз: <font color="#FF0000">*</font></td>
    <td align="left" style="padding:3px;"><input name="repass" type="password" size="25" maxlength="20" /></td>
  </tr>
  <tr>
    <td colspan="2" align="left" style="padding:3px;">Пароли должны совпадать.</td>
    </tr>
  <tr>
    <td align="left" style="padding:3px;">Вас пригласил:</td>
    <td align="left" style="padding:3px;">[ID: <?=$data_t["referer_id"];?>] <?=$data_t["referer_name"];?></td>
  </tr>
  <tr>
    <td colspan="2" align="left">&nbsp;</td>
  </tr>
  <tr>
    <td colspan="2" align="left" style="padding:3px;">
   С <a href="/rules" target="_blank" class="stn">правилами[/url] проекта ознакомлен(а) и принимаю: <input name="rules" type="checkbox" /></td>
  </tr>
  <tr>
    <td colspan="2" align="left">&nbsp;</td>
  </tr>
  <tr>
    <td colspan="2" align="center" style="padding:3px;"><input name="registr" type="submit" value="ЗАРЕГИСТРИРОВАТЬСЯ" class="button" style="height: 35px; margin-top:10px;"></td>
  </tr>
</table>
</form>

</div>
<div class="clr"></div>   
 
Теги: