Проблема при регистрации в фф

  • Автор темы Pizza52
  • Дата начала
Pizza52
Участник
Сообщения
335
Реакции
21
В общем при регистрации в первом этапе вводится почта и капча после его должно придти письмо для продолжения реги, но письмо не приходит.
Проблема в коде я так понимаю? и где именно? подскажите?

<?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="#" 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("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><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 />";

}


?>
 
Andreys
Участник
Сообщения
576
Реакции
40
Pizza52 написал(а):
В общем при регистрации в первом этапе вводится почта и капча после его должно придти письмо для продолжения реги, но письмо не приходит.
Проблема в коде я так понимаю? и где именно? подскажите?

<?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("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><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 />";

}


?>
ну не знау, у меня даже иза хостинга такое както было)) Да и зачем вам это перенаправление, только народ лишний раз отпугивает от дополнительных телодвижений) Поставь обыкновенный без перенаправления , Вот скину тебе, или выдерни сам с другой фермы
Код:
<?PHP
$_OPTIMIZATION["title"] = "Регистрация";
$_OPTIMIZATION["description"] = "Регистрация пользователя в системе";
$_OPTIMIZATION["keywords"] = "Регистрация нового участника в системе";

if(isset($_SESSION["user_id"])){ Header("Location: /account"); return; }
?>
<div class="content-wrap row-fluid">

  <div class="noright">
    <div class="text-article">

<?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;
    $ipregs = $db->Query("SELECT * FROM `db_users_a` WHERE INET_NTOA(db_users_a.ip) = '$ip' ");
    $ipregs = $db->NumRows();

    $email = $func->IsMail($_POST["email"]);
    $referer_id = (isset($_COOKIE["i"]) AND intval($_COOKIE["i"]) > 0 AND intval($_COOKIE["i"]) < 1000000) ? intval($_COOKIE["i"]) : 1;
    $referer_name = "";
    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 = "Admin"; }
    }else{ $referer_id = 1; $referer_name = "Admin"; }

        if($rules){
            if($ipregs == 0) {

            if($email !== false){

            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','1', '".time()."')");

                        # Вставляем статистику
                        $db->Query("UPDATE db_stats SET all_users = all_users +1 WHERE id = '1'");

                        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><font color = 'red'><b>Email имеет неверный формат</b></font></center>";

        }else echo "<center><font color = 'red'><b>Регистрация с этого IP уже производилась</b></font></center>";

        }else echo "<center><b><font color = 'red'>Вы не подтвердили правила</font></b></center><BR />";



    }


?>


<BR />





<div class="signup-box">
  <div class="presentation">


    <div class="i-can">BON DOGE</div>

    <div class="arrow">
      <span class="date"></span>
      <span class="date"></span>
      <span class="date">зарабатывай на просмотрах</span>
    </div>
  </div>
  <div class="signup-form">
    <div class="user_form">
      <form action="" method="post" id="signupForm">
  <input type="hidden" name="subid" id="subid">
  <input type="hidden" name="partner_key" id="partner_key">
  <input type="hidden" name="group" id="group">
  <input type="hidden" name="source" id="source">
  <input type="hidden" name="reg_group" value="signup">

      <div class="signup-choice">

      <ul class="items">
        <li class="choice-1"><label>


          </label></li>
        <li class="choice-2"><label>


          </label></li>
        <li class="choice-3"><label>


          </label></li>
      </ul>
    </div>


  <label for="first_name">Ваш псевдоним:</label>
  <input type="text" name="login" type="text" size="25" maxlength="10" value="<?=(isset($_POST["login"])) ? $_POST["login"] : false; ?>"/>

  <label for="email">Пароль:</label>
  <input type="password" name="pass" />

  <label for="email">Пароль еще раз:</label>
  <input type="password" name="repass" />

  <label for="email">Электронный адрес:</label>
  <input type="text" name="email" type="text" size="25" maxlength="50" value="<?=(isset($_POST["email"])) ? $_POST["email"] : false; ?>"/>


  <label class="checkbox terms">
    <input name="rules" value="check" checked="checked" type="checkbox">
    Я&nbsp;принимаю&nbsp;<a href="https://servahoc.ru/redirect.php?url=/rules" target="_blank" class="service-page-link">правила&nbsp;использования</a>.
  </label>

  <div class="controls actions">
    <button type="submit" class="btn btn-primary" id="btnContinue">Регистрация</button>
  </div>


</form>    </div>
  </div>
</div>
  </div>
</div>

</div>

<style>




  .signup-box .signup-form {
    float: right;
    width: 270px;
  }

  .signup-box .signup-form form {
    margin-bottom: 0;
  }

  .signup-box .signup-form .user_form {
    float: none;
    padding: 20px;
  }

  .signup-box .signup-form .actions {
    text-align: center;
  }

  .signup-box .signup-promo h2 {
    font-size: 1.5em !important;
    line-height: 1em;
    margin-top: 0;
  }

  .content-wrap {
    background-image: url(/img/blocks/signup-page/bg.jpg);
    background-repeat: no-repeat;
    background-position: center;
  }



  .i-can {
    color: #514b40;
    font-size: 42px;
    margin: 10px 0 0 0;
    line-height: 44px;
    padding: 0;
    left: 0;
    letter-spacing: -1px;
  }

  .arrow {
    background: url(/img/blocks/signup-page/arrow.png) no-repeat top;
    left:-25px;
    color: #fff;
    font-size: 32px;
    height: 205px;
    line-height: 46px;
    margin:50px 0 0 -64px;
    padding: 24px 0 0 140px;
    position: absolute;
    width: 440px;
  }

  .arrow span {
    display: block;
    margin-left:60px;
  }

  .arrow .weight {
    font-size: 1em;
    font-weight: bold;
  }

  .presentation {
    float: left;
    margin-left: 10px;
  }

  .presentation .author {
    overflow: hidden;
    width: 333px;
    text-align: right;
    zoom: 1;
  }

  .presentation .author img {
    float: left;
  }

  .presentation .author .name {
    font-size: 14px;
    color: #5d4824;
    line-height: 18px;
  }

  .presentation .author .old {
    font-size: 14px;
    color: #88847e;
    line-height: 13px;
    font-style: italic;
  }

  .presentation .author .city {
    font-size: 20px;
    color: #000;
    font-weight: bold;
  }
</style>
<div class="clr"></div>
 
Pizza52
Участник
Сообщения
335
Реакции
21
По сути хостинг нормальный, и всё должно быть норм))
 
Pizza52
Участник
Сообщения
335
Реакции
21
Да и твой код не подходит к моему...
 
Pizza52
Участник
Сообщения
335
Реакции
21
В общем вопрос был об ошибке а не альтернативному методу замене кода, я хочу именно такую регистрацию как в моём коде..
 
Antonxa
Участник
Сообщения
28
Реакции
0
Pizza52 написал(а):
Да и твой код не подходит к моему...
А какой файл отвечает за регистрацию? Я что-то найти у себя не могу
 
Pizza52
Участник
Сообщения
335
Реакции
21
Pizza52
Участник
Сообщения
335
Реакции
21
Почту на хостинге создал, support@хост.ру исходя из коде сендера

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;

}
Но письма для регистрации всё равно не приходят..
 
Сверху