[ Новые сообщения · Участники · Правила форума · Поиск · RSS ]
  • Страница 1 из 1
  • 1
Модератор форума: Mangoost  
Капча
ПРОФИЛЬ
astnДата: Понедельник, 09.Мар.2009, 22:45:38 | Сообщение # 1
Рядовой
Группа: Пользователи
Сообщений: 2
Статус: Offline
Всем Здравие! У миня появилась праблема на сервере Регистрация аккаунтов в огромном количестве. И в голову пришла мылся как капча. Но я немогу установить её прошу помощи

Код страницы Регистрации

Code

<div align="center" id="gl_font">
<h4>Регистрация нового пользователя</h4><br>
<script type="text/javascript">//<![CDATA[
function checkit(v)
{
   if (/^\w{4,15}$/.test(v))
      return true;
      else
      return false;
}

function checkp(val1,val2)
{
   if (val1==val2)
      return true;
      else
      return false;
}

function checK(f)
{
   if (f.account.value=='')
      {
       alert("Введите логин");
    f.account.focus();return false
      }
      if (!checkit(f.account.value))
      {
       alert('Логин не  верный. Англ буквы и цифры');
          f.account.select();return false
      }
      if (f.password.value=='')
      {
       alert("Введите пароль");
    f.password.focus();return false
      }
      if (!checkit(f.password.value))
      {
       alert('Пароль не верный. Англ буквы и цифры');
          f.password.select();return false
      }
      if (f.password2.value=='')
      {
       alert("Введите повторно пароль");
    f.password2.focus();return false
      }
      if (!checkp(f.password.value,f.password2.value))
      {
       alert('Пароли не совпадают');
          f.password2.select();return false
      }
      if (f.answer.value=='')
      {
       alert("Введите ответ на вопрос");
    f.answer.focus();return false
      }
      if (!checkit(f.answer.value))
      {
       alert('Ответ не верный. Англ буквы и цифры');
          f.answer.select();return false
      }
      if (f.email.value=='')
      {
       alert("Введите E-Mail");
    f.email.focus();return false
      }
      if (/^\w+([\.-]?\w+)*@\w+([\.-]?\w+)*(\.\w{2,4})+$/.test(f.email.value))
      {
    return true
      }
alert('E-Mail не верный'); f.email.select()
return false
}

//]]></script>

<?php
$regtext="
<font size=\"2\" color=\"teal\">Пожалуйста заполните все поля предложенной формы!<br> <br>

<LI>Логин и пароль должны состоять от 4 до 15 знаков (англ. буквами и цифрами).<BR>
<BR><BR>
";
$formreg="<form name=\"f\" method=\"post\" action=\"index.php?t=core/reg&f=reg2\" onsubmit=\"return checK(this)\">
<input type=\"hidden\" name=\"is_reg\" value=\"1\" />
<table id=\"logfor_font\" >
   <tr>
    <td>Логин:</td>
    <td><input id=\"regin\" type=\"text\" name=\"account\" maxlength=\"15\"  size=\"15\"/></td>
   </tr>
   <tr>
    <td>Пароль:</td>
    <td><input id=\"regin\" type=\"password\" name=\"password\" maxlength=\"15\" size=\"15\"/></td>
   </tr>
   <tr>
    <td>Повторите пароль:</td>
    <td><input id=\"regin\" type=\"password\" name=\"password2\" maxlength=\"15\"size=\"15\" /></td>
   </tr>
   <tr>
    <td colspan=\"2\" style=\"text-align: center; \"><br />
    <input type=\"image\"  src=\"/core/cont_img/register.gif\" name=\"submitreg\" value=\"Регистрация\" /></td>
   </tr>
</table>
</form><br>
Регестрируясь Вы соглашаетесь с <a href=\"index.php?t=core&f=rules\"><b>ПРАВИЛАМИ</b></a> сервера";
$reg_false="<br><br><a href=\"index.php?t=core/reg&f=reg2\">Регистрация</a>";

if (!empty($_POST['is_reg']))
    {
          $stlogin=$_POST['account'];
          $stpassw=$_POST['password'];
          $stpass=base64_encode(pack('H*',sha1(utf8_encode($stpassw))));
          $stemail=$_POST['email'];
          $stquestion=$_POST['question'];
          $stanswer=$_POST['answer'];
          $st_userid=uid();
    $stcheck=mysql_query("select * from accounts where login='$stlogin'");
          $stchek=mysql_num_rows($stcheck);
          if($stchek>0)
     {
              echo "<p id='dl_font'><b>Ошибка регистрации: такой логин существует.</b></p>";
              print "$reg_false";
              }
     else
      {
                  $st1=mysql_query("INSERT INTO accounts (login, password, access_level, lastServer, IPBlock) VALUES ('$stlogin', '$stpass', '0', '1', '0')");
                  print "<p ><font color=\"green\"><b>Ваш логин</font> “$stlogin” <font color=\"green\">удачно зарегистрирован!</b></font></p>";
                  }
       }
        else
         {
         print "$regtext";
              print "$formreg";
           }
?>

</div>
<br><br><br>

Сама капча.

http://captcha.ru/kcaptcha.zip

Сообщение отредактировал astn - Понедельник, 09.Мар.2009, 22:46:12
 
ПРОФИЛЬ
CorsaRДата: Вторник, 10.Мар.2009, 10:51:46 | Сообщение # 2
Живу я здесь
Группа: Администраторы
Сообщений: 497
Статус: Offline
Эту проблемму можно решать не только с помощью капчи, можно поставить ява скрипт на ограничение по времени, тоесть после регистрации аккаунта с одного компа, следующая регистрация будет возможна не раньше чем через минуту или 5 смотря какой интервал поставишь , пример такого ограничения можно глянуть здесь https://la2.meganet.org.ua/reg/
 
  • Страница 1 из 1
  • 1
Поиск: