kcaptcha-капча для регистрации - Форум администраторов игровых серверов
Форум администраторов игровых серверов StormWall - Защита от DDos атак
Регистрация Мнения Справка Сообщество Календарь
Вернуться   Форум администраторов игровых серверов > MMO > Lineage II > Движки сайтов (CMS)

Движки сайтов (CMS)
Обсуждения, решения проблем веб обвязок для ява сервера.

Ответ
Опции темы
Непрочитано 12.09.2009, 16:40   #1
Аватар для MAZDIK
Пользователь

Автор темы (Топик Стартер) kcaptcha-капча для регистрации

скрипт регистрации с капчей для МВ 2.2

Код HTML:
<center><h4>Регистрация</H4><hr>
</center><ul>
<br><BR><ul>
<LI> Аккаунт и пароль не могут быть пустыми.<BR>
<LI> Аккаунт и пароль не могут содержать менее 4 знаков
и больее 20 знаков.<BR>
<LI>Аккаунт и пароль пишутся латинскими буквами или цифрами.<BR>
<BR><BR>
</ul>

<script type="text/javascript">//<![CDATA[
function isAlphaNumeric(value)
{
if (value.match(/^[a-zA-Z0-9_]+$/))
return true;
return false;
}
function checkform(f)
{
if (f.account.value=="")
{
alert("Введите аккаунт");
return false;
}
if (!isAlphaNumeric(f.account.value))
{
alert("Аккаунт должен состоять из английских букв и/или цифр!");
return false;
}
if (f.password.value=="")
{
alert("Введите пароль");
return false;
}
if (!isAlphaNumeric(f.password.value))
{
alert("Пароль должен состоять из английских букв и/или цифр!");
return false;
}
if (f.password2.value=="")
{
alert("Введите пароль повторно");
return false;
}
if (f.password.value != f.password2.value)
{
alert("Пароль и повтор пароля не совпадают!");
return false;
}
if (f.email.value=="")
{
alert("Введите E-mail");
return false;
}
if (!f.email.value.match(/^([a-zA-Z0-9])+([.a-zA-Z0-9_-])*@([a-zA-Z0-9_-])+(.[a-zA-Z0-9_-]+)+/))
{
alert("Это не e-mail!");
return false;
}
if (f.question1.value=="")
{
alert("Введите Секретный вопрос №1");
return false;
}
if (f.answer1.value=="")
{
alert("Введите Секретный ответ №1");
return false;
}
if (f.question2.value=="")
{
alert("Введите Секретный вопрос №2");
return false;
}
if(f.answer2.value=="")
{
alert("Введите Секретный ответ №2");
return false;
}
{
return true;
}
//]]></script>
</head>
<body>
<form method="post" action="index.php?id=reg_false" onsubmit="return checkform(this)">
<table>

<?php
$input[]=Array("text" , "account" , 20);
$input[]=Array("password", "password" , 20);
$input[]=Array("password", "password2", 20);
$input[]=Array("text" , "email" , 40);
$input[]=Array("text" , "question1", 40);
$input[]=Array("text" , "answer1" , 40);
$input[]=Array("text" , "question2", 40);
$input[]=Array("text" , "answer2" , 40);
for ($i=0; $i<count($input); $i++)
{
$Lang["accounts_account"]="Аккаунт";
$Lang["accounts_email"]="E-mail";
$Lang["accounts_password"]="Пароль";
$Lang["accounts_password2"]="Повторите пароль";
$Lang["accounts_question1"]="Секретный вопрос №1";
$Lang["accounts_question2"]="Секретный вопрос №2";
$Lang["accounts_answer1"]="Секретный ответ №1";
$Lang["accounts_answer2"]="Секретный ответ №2";
$Lang["accounts_accountnotalphanumeric"]="Аккаунт должен состоять из английских букв и/или цифр!";
$Lang["error_error"]='Ошибка: ';
$Lang["accounts_passwordnotalphanumeric"]="Пароль должен состоять из английских букв и/или цифр!";
$Lang["accounts_notemail"]="Это не e-mail!";
$Lang["accounts_registered"]="<b>Аккаунт успешно зарегистрирован !<br><br>Обязательно запомните эти данные.<br><br></b>";
$Lang["accounts_email_error"]="Ошибка при отправке e-mail'а";
$Lang["accounts_alreadyexist"]="Такой аккаунт уже существует";
print '<tr>
<td>'.$Lang["accounts_".$input[$i][1]].'</td>
<td><input type="'.$input[$i][0].'" name="'.$input[$i][1].'" maxlength="'.$input[$i][2].'" value="'.@$_POST[$input[$i][1]].'" /></td>
</tr>
';
}
?>
<tr>
<td align="right">Антибот:</td>
<td align="right">

<p><img src="kcaptcha/index.php?<?php echo session_name()?>=<?php echo session_id()?>"></p>
<p><input type="text" name="keystring"></p>

</td>
</tr>
<tr>
<td colspan="2" style="text-align: center;"><br/><input type="submit" value="Зарегистрироваться" /></td>
</tr>
</table>
</form>

</body>
</html>

<?php
{
$Lang["accounts_account"]="Аккаунт";
$Lang["accounts_email"]="E-mail";
$Lang["accounts_password"]="Пароль";
$Lang["accounts_password2"]="Повторите пароль";
$Lang["accounts_question1"]="Секретный вопрос №1";
$Lang["accounts_question2"]="Секретный вопрос №2";
$Lang["accounts_answer1"]="Секретный ответ №1";
$Lang["accounts_answer2"]="Секретный ответ №2";
$Lang["accounts_accountnotalphanumeric"]="Аккаунт должен состоять из английских букв и/или цифр!";
$Lang["error_error"]='Ошибка: ';
$Lang["accounts_passwordnotalphanumeric"]="Пароль должен состоять из английских букв и/или цифр!";
$Lang["accounts_notemail"]="Это не e-mail!";
$Lang["accounts_registered"]="<b>Аккаунт успешно зарегистрирован !<br><br>Обязательно запомните эти данные.<br><br></b>";
$Lang["accounts_email_error"]="Ошибка при отправке e-mail'а";
$Lang["accounts_alreadyexist"]="Такой аккаунт уже существует";
print '
';
}
?>

<?php
if(isset($_SESSION['captcha_keystring'])&&
$_SESSION['captcha_keystring']==$_POST['keystring'])
{
if ($page="index.php" && $_POST['account'] && strlen($_POST['account'])<=20 && $_POST['password'] && $_POST['password2'] && $_POST['password']==$_POST['password2'] && $_POST['email'] && strlen($_POST['email'])<=20 && $_POST['question1'] && strlen($_POST['question1']<=40) && $_POST['question2'] && strlen($_POST['question2']<=40) && $_POST['answer1'] && strlen($_POST['answer1']<=40) && $_POST['answer2'] && strlen($_POST['answer2']<=40))
{
// anti-injection
if (!eregi("^[a-zA-Z0-9_]+$", $_POST['account']))
die ("<p class=\"error\">" . $Lang["error_error"] . $Lang["accounts_accountnotalphanumeric"] . "</p>");
if (!eregi("^[a-zA-Z0-9_]+$", $_POST['password']))
die ("<p class=\"error\">" . $Lang["error_error"] . $Lang["accounts_passwordnotalphanumeric"] . "</p>");
if (!eregi("^([a-zA-Z0-9])+([.a-zA-Z0-9_-])*@([a-zA-Z0-9_-])+(.[a-zA-Z0-9_-]+)+", $_POST['email']))
die ("<p class=\"error\">" . $Lang["error_error"] . $Lang["accounts_notemail"] . "</p>");

$banwords=Array("'", "\"", ",", ";", "--", "#");
$_POST['question1']=str_replace($banwords, '', $_POST['question1']);
$_POST['question2']=str_replace($banwords, '', $_POST['question2']);
$_POST['answer1']=str_replace($banwords, '', $_POST['answer1']);
$_POST['answer2']=str_replace($banwords, '', $_POST['answer2']);
// end anti-injection

mysql_query("INSERT INTO accounts (login, password, lastactive, access_level, lastIP, email, question1, answer1, question2, answer2) VALUES ('".$_POST['account']."', '". base64_encode(pack('H*', sha1(utf8_encode($_POST['password'])))) ."', NULL, 0, NULL, '".$_POST['email']."', '".$_POST['question1']."', '".$_POST['answer1']."', '".$_POST['question2']."', '".$_POST['answer2']."')", $link);
switch (mysql_errno())
{
case 0:
$msg1 = "<table border=\"0\">\n<tr colspan=\"2\"><td class=\"error\">" .$Lang["accounts_registered"]. "</td></tr>\n<tr><td>" .$Lang["accounts_account"]. "</td><td>" .$_POST['account']. "</td></tr>\n";
$msg3 = "<tr><td>" .$Lang["accounts_email"]. "</td><td>" .$_POST['email']. "</td></tr>\n<tr><td>" .$Lang["accounts_question1"]. "</td><td>" .$_POST['question1']. "</td></tr>\n<tr><td>" .$Lang["accounts_answer1"]. "</td><td>" .$_POST['answer1']. "</td></tr>\n<tr><td>" .$Lang["accounts_question2"]. "</td><td>" .$_POST['question2']. "</td></tr>\n<tr><td>" .$Lang["accounts_answer2"]. "</td><td>" .$_POST['answer2']. "</td></tr>\n</table>";
print "<br />\n".$msg1.$msg3;
if ($L2JBS_config["mail_enable"])
if (!$ok=mail($_POST['email'], $L2JBS_lang["accounts_email_subject_registered"], $msg1."<tr><td>".$Lang["accounts_password"]."</td><td>".$_POST['password']."</td></tr>\n".$msg3, "Content-type: text/html; charset=UTF-8\r\nFrom: ".$L2JBS_lang["accounts_email_from"]))
print '<p class="error">'.$Lang["accounts_email_error"].'</p>';
break;
case 1054: print '<p class="error">Необходимо изменить таблицу "accounts". See Readme.txt</p>'; break;
case 1062: print '<p class="error">'.$Lang["accounts_alreadyexist"].'</p>'; break;
default: print 'Error '.mysql_errno().': '.mysql_error(); break;
}
}
}else{
echo ("<font color='red'>Вы ввели не верный код с картинки</font><br>");
}
unset($_SESSION['captcha_keystring']);
?>
[SOURCE="sql"]ALTER TABLE `accounts`
ADD `email` VARCHAR( 100 ) NOT NULL;
ALTER TABLE `accounts`
ADD `question1` VARCHAR( 100 ) NOT NULL;
ALTER TABLE `accounts`
ADD `answer1` VARCHAR( 100 ) NOT NULL;
ALTER TABLE `accounts`
ADD `question2` VARCHAR( 100 ) NOT NULL;
ALTER TABLE `accounts`
ADD `answer2` VARCHAR( 100 ) NOT NULL;[/SOURCE]


У меня все время пишет:Вы ввели не верный код с картинки

Последний раз редактировалось PROGRAMMATOR; 12.09.2009 в 19:35.
MAZDIK вне форума Ответить с цитированием
Ответ


Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
 

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход


© 2007–2024 «Форум администраторов игровых серверов»
Защита сайта от DDoS атак — StormWall
Работает на Булке неизвестной версии с переводом от zCarot
Текущее время: 00:10. Часовой пояс GMT +3.

Вверх