Ошибка при добавлении бонуса при регистрации

  • Автор темы Arrress
  • Дата начала
Arrress
Участник
Сообщения
11
Реакции
0
Всем привет !! Я добавил бонус при регистрации , письмо приходит , но при переходе из него на страничке написано Ссылка для регистрации не действительна :( Что я делаю не правильно ?
Код:
<?PHP
$_OPTIMIZATION["title"] = "Регистрация";
$_OPTIMIZATION["description"] = "Регистрация пользователя в системе";
$_OPTIMIZATION["keywords"] = "Регистрация нового участника в системе";

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


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


?>
<div class="s-bk-lf">
    <div class="acc-title">Регистрация</div>
</div>
<div class="silver-bk"><div class="clr"></div>   
<p>Укажите Ваш Email, на него будет выслана ссылка для регистрации.</p>
<?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 = 1; $referer_name = "First"; }
                       
                        }else{ $referer_id = 1; $referer_name = "First"; }
                       
                       
                        # Заносим запись в 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'><b>Указанный Email была отправлена ссылка для регистрации</b></font></center>";
                        ?></div>
                        <div class="clr"></div>   
                        <?PHP
                        return;
                       
                    }else echo "<center><font color = 'red'><b>Указанный Email уже зарегистрирован в системе</b></font></center>";
                   
                }else echo "<center><font color = 'red'><b>За последние 15 минут Вы уже запрашивали ссылку для регистрации</b></font></center>";
           
            }else echo "<center><font color = 'red'><b>Email имеет неверный формат</b></font></center>";
       
        }else echo "<center><font color = 'red'><b>Символы с картинки введены неверно</b></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"])) ? $_POST["email"] : false; ?>"/></td>
</tr>
<tr>
<td align="left" width="250" style="padding-top:20px;">
<a href="https://servahoc.ru/redirect.php?url=#" onclick="ResetCaptcha(this);"><img src="/captcha.php?rnd=<?=rand(1,10000); ?>"  border="0" style="margin:0;"/></a>
</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="Выслать ссылку" class="button_0" style="height: 30px;"></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><b><font color = 'red'>Ссылка для регистрации не действительна :(</font></b></center><BR />"; return; }
   
    $tkey = md5($token_id."_rfs_".$token_id);
    if($token_hash != $tkey){ echo "<center><b><font color = 'red'>Ссылка для регистрации не действительна :(</font></b></center><BR />"; return; }
   
    $db->Query("SELECT * FROM db_regkey WHERE id = '$token_id' LIMIT 1");
    if($db->NumRows() != 1){ echo "<center><b><font color = 'red'>Ссылка для регистрации не действительна :(</font></b></center><BR />"; return; }
   
    $data_t = $db->FetchArray();
    $db->FreeMemory();
   
?>
<div class="s-bk-lf">
    <div class="acc-title">Регистрация</div>
</div>
<div class="silver-bk"><div class="clr"></div>   
<?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("REPLACE INTO db_users_b (id, user, money_b, last_sbor) VALUES ('$lid','$login','5555', '".time()."')");
                        $lid = $db->LastInsert();
                       
                        $db->Query("REPLACE 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><b><font color = 'green'>Вы успешно зарегистрировались. Используйте форму слева для входа в аккаунт</font></b></center><BR />";
                        ?></div>
                        <div class="clr"></div>   
                        <?PHP
                        return;
                        }else echo "<center><b><font color = 'red'>Указанный логин уже используется</font></b></center><BR />";
                       
                    }else echo "<center><b><font color = 'red'>Пароль и повтор пароля не совпадают</font></b></center><BR />";
           
                }else echo "<center><b><font color = 'red'>Пароль заполнен неверно</font></b></center><BR />";
           
            }else echo "<center><b><font color = 'red'>Логин заполнен неверно</font></b></center><BR />";
       
        }else echo "<center><b><font color = 'red'>Вы не подтвердили правила</font></b></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"])) ? $_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="https://servahoc.ru/redirect.php?url=/rules" target="_blank" class="stn">правилами</a> проекта ознакомлен(а) и принимаю: <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>

</div>
<div class="clr"></div>
 
artem1552
Местный
Сообщения
48
Реакции
3
Бонус тут не причем, нужно смотреть что пишется в базу при запросе выслать ссылку! У тебя походу не верный ключ генерируется или еще что то!
 
Arrress
Участник
Сообщения
11
Реакции
0
Дело в том , что без этлго изменения все хорошо работает ((
 
vestmix
Участник
Сообщения
146
Реакции
4
Не легче взять стандартную форму регистраций?
 
kvozimir
Участник
Сообщения
1.935
Реакции
409
ICQ
734713 734713
Skype
ну мои не опытные глаза увидели что код на бонус вставлен не верно
 
vestmix
Участник
Сообщения
146
Реакции
4
kvozimir написал(а):
ну мои не опытные глаза увидели что код на бонус вставлен не верно
Просто мне кажется легче взять просто код регистраций с фермы где работает бонус уже встроен или либо ждать пока кто нибудь напишет как это исправить)
 
kvozimir
Участник
Сообщения
1.935
Реакции
409
ICQ
734713 734713
Skype
vestmix написал(а):
Просто мне кажется легче взять просто код регистраций с фермы где работает бонус уже встроен или либо ждать пока кто нибудь напишет как это исправить)
:thumbsup: ну я подтолкнул человека в нужную сторону не все же за них делать
 
Сверху