[help]Kcaptcha
51 replies1,705 viewsCurrently viewing: 1
· 11/25/2008, 12:34 PM
Rastal: Как вставить kcaptcha в регистрацию Moy-Web 2.2?
Объясняю:
1. Скачиваем Kcaptcha
2. Кидаем папку Kcaptcha в папку www
3. Берем скрипт регистрации:
Цитата
<?php session_start();?>
<center>
| <a href="index.php?id=register">Регистрация</a>
| <a href="index.php?id=cp">Личный кабинет</a>
| <a href="index.php?id=jail">Новости из тюрьмы</a>
| <a href="index.php?id=changepassword2">Смена пароля</a>|<br><hr>
<center/>
<?php
// Настройка базы данных.
$dbuser = "USER"; // Пользователь
$dbpass = "PASS"; // Пароль
$dbhost = "localhost"; // Адресс БД
$dbname = "BASE"; // Имя базы данных
// Настройка скрипта
$savedata = "true"; //Сохранять или нет пользовательские данные, пароль логин, icq , email. По умолчанию включено.
// Начало скрипта
$fsname = $_SERVER['SCRIPT_NAME'];
$msconn = mysql_connect($dbhost, $dbuser, $dbpass) or die ("Ошибка соединения");
MYSQL_SELECT_DB($dbname) or die ("БД не найдена");
if ($_GET[step]=="2"){
$login = $_POST[login];
$pass = $_POST[pass];
$pass2 = $_POST[repeat];
$email = $_POST[email];
//1 часть Капчи
if(isset($_SESSION['captcha_keystring'])&&
$_SESSION['captcha_keystring']==$_POST['keystring'])
{
if ($login == "") {
echo ("<center>Вы не ввели логин</center>");
}else{
if ($pass == "") {
echo ("<center>Пароль не может быть пустым</center>");
}else{
if ($pass == $pass2) {
$q = mysql_query("SELECT * FROM accounts WHERE login='{$login}'");
if(!mysql_numrows($q) > "0") {
$gamepass = base64_encode(pack("H*", sha1(utf8_encode($pass))));
mysql_query("INSERT INTO accounts(login, password, email, lastactive, access_level) VALUES('$login' , '$gamepass', '$email', '$lastactive', '0')");
if ($savedata == "true") {
mysql_query("INSERT INTO account_info(login, password, email) VALUES('$login' , '$pass', '$email')");
}
echo ("<center>Аккаунт <font color='green'>".$login."</font> успешно зарегистрирован</center>");
} else {
echo ("<center>Имя <font color='red'>".$login."</font> уже зарегистрировано, попробуйте другое.</center>");
}
}else {
echo ("<center>Пароли не совпадают</center>");
}
}
}
//2 часть Капчи
}else{
echo ("<font color='red'>Вы ввели не верный код с картинки</font><br>");
}
unset($_SESSION['captcha_keystring']);
} elseif ($_GET[act]==""){
echo ('<form name="form1" method="post" action="'.$fsname.'?id=registerk1&step=2">
<center>Для создания аккаунта Вам следует заполнить эту форму. <br>В поле <b>"Аккаунт"</b> можно
использовать только символы <b>A-Z, a-z</b>.<br>
<br>
<br>
<b>Все поля формы обязательны к заполнению (регистр букв имеет значение):</b>
<br>
<br>
<div align="center">
<table width="266" border="0" cellspacing="0" cellpadding="0">
<tr>
<td width="105" align="right">Аккаунт:</td>
<td width="161"><label>
<input name="login" type="text" id="login">
</label></td>
</tr>
<tr>
<td align="right">Пароль:</td>
<td><label>
<input name="pass" type="password" id="pass">
</label></td>
</tr>
<tr>
<td align="right">Пароль:</td>
<td><label>
<input name="repeat" type="password" id="repeat">
</label></td>
</tr>
</tr>
<tr>
<td align="right">Почта:</td>
<td><label>
<input name="email" type="text" id="email">
</label></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 align="right"><label>
<input type="reset" name="Submit2" value="Сброс">
</label></td>
<td align="center"><label>
<input type="submit" name="Submit" value="Регистрация">
</label></td>
</tr>
</table>
</div>
</form>
<p> </p>
');
}
?>
Никому и никогда не говорите свой пароль, даже если человек, спрашивающий пароль, представляется администратором или Gamemaster'ом сервера. Помните, администрации сервера никогда не требуются ваши пароли.
<center>
| <a href="index.php?id=register">Регистрация</a>
| <a href="index.php?id=cp">Личный кабинет</a>
| <a href="index.php?id=jail">Новости из тюрьмы</a>
| <a href="index.php?id=changepassword2">Смена пароля</a>|<br><hr>
<center/>
<?php
// Настройка базы данных.
$dbuser = "USER"; // Пользователь
$dbpass = "PASS"; // Пароль
$dbhost = "localhost"; // Адресс БД
$dbname = "BASE"; // Имя базы данных
// Настройка скрипта
$savedata = "true"; //Сохранять или нет пользовательские данные, пароль логин, icq , email. По умолчанию включено.
// Начало скрипта
$fsname = $_SERVER['SCRIPT_NAME'];
$msconn = mysql_connect($dbhost, $dbuser, $dbpass) or die ("Ошибка соединения");
MYSQL_SELECT_DB($dbname) or die ("БД не найдена");
if ($_GET[step]=="2"){
$login = $_POST[login];
$pass = $_POST[pass];
$pass2 = $_POST[repeat];
$email = $_POST[email];
//1 часть Капчи
if(isset($_SESSION['captcha_keystring'])&&
$_SESSION['captcha_keystring']==$_POST['keystring'])
{
if ($login == "") {
echo ("<center>Вы не ввели логин</center>");
}else{
if ($pass == "") {
echo ("<center>Пароль не может быть пустым</center>");
}else{
if ($pass == $pass2) {
$q = mysql_query("SELECT * FROM accounts WHERE login='{$login}'");
if(!mysql_numrows($q) > "0") {
$gamepass = base64_encode(pack("H*", sha1(utf8_encode($pass))));
mysql_query("INSERT INTO accounts(login, password, email, lastactive, access_level) VALUES('$login' , '$gamepass', '$email', '$lastactive', '0')");
if ($savedata == "true") {
mysql_query("INSERT INTO account_info(login, password, email) VALUES('$login' , '$pass', '$email')");
}
echo ("<center>Аккаунт <font color='green'>".$login."</font> успешно зарегистрирован</center>");
} else {
echo ("<center>Имя <font color='red'>".$login."</font> уже зарегистрировано, попробуйте другое.</center>");
}
}else {
echo ("<center>Пароли не совпадают</center>");
}
}
}
//2 часть Капчи
}else{
echo ("<font color='red'>Вы ввели не верный код с картинки</font><br>");
}
unset($_SESSION['captcha_keystring']);
} elseif ($_GET[act]==""){
echo ('<form name="form1" method="post" action="'.$fsname.'?id=registerk1&step=2">
<center>Для создания аккаунта Вам следует заполнить эту форму. <br>В поле <b>"Аккаунт"</b> можно
использовать только символы <b>A-Z, a-z</b>.<br>
<br>
<br>
<b>Все поля формы обязательны к заполнению (регистр букв имеет значение):</b>
<br>
<br>
<div align="center">
<table width="266" border="0" cellspacing="0" cellpadding="0">
<tr>
<td width="105" align="right">Аккаунт:</td>
<td width="161"><label>
<input name="login" type="text" id="login">
</label></td>
</tr>
<tr>
<td align="right">Пароль:</td>
<td><label>
<input name="pass" type="password" id="pass">
</label></td>
</tr>
<tr>
<td align="right">Пароль:</td>
<td><label>
<input name="repeat" type="password" id="repeat">
</label></td>
</tr>
</tr>
<tr>
<td align="right">Почта:</td>
<td><label>
<input name="email" type="text" id="email">
</label></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 align="right"><label>
<input type="reset" name="Submit2" value="Сброс">
</label></td>
<td align="center"><label>
<input type="submit" name="Submit" value="Регистрация">
</label></td>
</tr>
</table>
</div>
</form>
<p> </p>
');
}
?>
Никому и никогда не говорите свой пароль, даже если человек, спрашивающий пароль, представляется администратором или Gamemaster'ом сервера. Помните, администрации сервера никогда не требуются ваши пароли.
4. Меняем выделенное красным на свое
5. Кидаем в папку module
И наслаждаемся рабочей Капчей!
С тебя Спасибка!
Вот сама Капча!
[attachment=1828:kcaptcha.rar]
На Форуме я тоже Radar!
Я везде Radar!
0
· 11/30/2008, 04:10 PM
Radar: Объясняю:
1. Скачиваем Kcaptcha
2. Кидаем папку Kcaptcha в папку www
3. Берем скрипт регистрации:
4. Меняем выделенное красным на свое
5. Кидаем в папку module
И наслаждаемся рабочей Капчей!
С тебя Спасибка!
Вот сама Капча!
[attachment=1828:kcaptcha.rar]
А запрос в бд можно?=)
— L2Revolution.ru Admin
0
· 11/30/2008, 04:55 PM
JustMeGiveWmz: А запрос в бд можно?=)
Я так понимаю запрос на добавление столбца email?
Код
ALTER TABLE `accounts`
ADD COLUMN `email` varchar(100) NOT NULL AFTER `password`;
ADD COLUMN `email` varchar(100) NOT NULL AFTER `password`;
На Форуме я тоже Radar!
Я везде Radar!
0
· 11/30/2008, 05:31 PM
Вставил скрипт, страница не грузится =) Мб инет подводит =)
Пишет ошибка соединения - странно =\ Всё указал правильно...
— L2Revolution.ru Admin
0
· 11/30/2008, 05:39 PM
Блин всем сори
Исправте это
Код
echo ('<form name="form1" method="post" action="'.$fsname.'?id=registerk1&step=2">
на это
Код
echo ('<form name="form1" method="post" action="'.$fsname.'?id=register&step=2">
На Форуме я тоже Radar!
Я везде Radar!
0
· 11/30/2008, 06:02 PM
ну вродебы дело может быть только в настройках раз "Ошибка соединения" ![]()
На Форуме я тоже Radar!
Я везде Radar!
0
· 12/06/2008, 07:37 AM
Не могли бы вы интегрировать капчу вот в этот скрипт?
CODE
<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=registred2" 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 colspan="2" style="text-align: center;"><br/><input type="submit" value="Зарегистрироваться" /></td>
</tr>
</table>
</form>
</body>
</html>
</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=registred2" 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 colspan="2" style="text-align: center;"><br/><input type="submit" value="Зарегистрироваться" /></td>
</tr>
</table>
</form>
</body>
</html>
— L2Revolution.ru Admin
0
· 12/06/2008, 10:33 AM
Если ето то, то вот:
CODE
-- ----------------------------
-- Table structure for accounts
-- ----------------------------
DROP TABLE IF EXISTS `accounts`;
CREATE TABLE `accounts` (
`login` varchar(45) character set latin1 NOT NULL default '',
`password` varchar(45) character set latin1 default NULL,
`lastactive` decimal(20,0) default NULL,
`access_level` int(11) default NULL,
`lastIP` varchar(20) character set latin1 default NULL,
`lastServer` int(4) default '1',
`IPBlock` tinyint(1) default '0',
`email` varchar(20) default NULL,
`question1` varchar(40) default NULL,
`answer1` varchar(40) default NULL,
`question2` varchar(40) default NULL,
`answer2` varchar(40) default NULL,
PRIMARY KEY (`login`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
-- Table structure for accounts
-- ----------------------------
DROP TABLE IF EXISTS `accounts`;
CREATE TABLE `accounts` (
`login` varchar(45) character set latin1 NOT NULL default '',
`password` varchar(45) character set latin1 default NULL,
`lastactive` decimal(20,0) default NULL,
`access_level` int(11) default NULL,
`lastIP` varchar(20) character set latin1 default NULL,
`lastServer` int(4) default '1',
`IPBlock` tinyint(1) default '0',
`email` varchar(20) default NULL,
`question1` varchar(40) default NULL,
`answer1` varchar(40) default NULL,
`question2` varchar(40) default NULL,
`answer2` varchar(40) default NULL,
PRIMARY KEY (`login`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
— L2Revolution.ru Admin
0
· 12/06/2008, 11:25 AM
А это полный скрипт?
У тебя регистрация с ним работает?
На Форуме я тоже Radar!
Я везде Radar!
0
· 12/06/2008, 11:26 AM
С ним работает! Нет не полный, конец скрипта в другом .пъп файле!
— L2Revolution.ru Admin
0
· 12/06/2008, 11:36 AM
CODE
<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=registred2" 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 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 ($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;
}
}
?>
</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=registred2" 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 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 ($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;
}
}
?>
— L2Revolution.ru Admin
0
Topic is closed for replies




