Fix для Moy-Web 4,1
| | ПРОФИЛЬ
TomAlko | Дата: Воскресенье, 14.Мар.2010, 11:41:56 | Сообщение # 1 |
Сержант
Группа: Пользователи
Сообщений: 29
Статус: Offline
| ========================================= для тех кто (Необходимо изменить таблицу "accounts". Читать DOC.html (каторый я не нашёл)). /*===========accounts-l2vote.sql============*/ DROP TABLE IF EXISTS `accounts`; CREATE TABLE `accounts` ( `login` VARCHAR(45) NOT NULL default '', `password` varchar(45) default NULL, `lastactive` DECIMAL(20), `accessLevel` tinyint(4) NOT NULL default '0', `lastIP` CHAR(15) NULL DEFAULT NULL, `userIP` char(15) DEFAULT NULL, `email` varchar(40) default NULL, `question1` varchar(40) default NULL, `answer1` varchar(40) default NULL, `lastServer` tinyint(4) default '1', `codes` varchar(20) default NULL, PRIMARY KEY (`login`) ) ENGINE=MyISAM /*!40101 DEFAULT CHARSET=DEFAULT */; /* MySQL Data Transfer Source Host: 93.81.253.3 Source Database: x200 Target Host: 93.81.253.3 Target Database: x200 Date: 22.09.2008 21:36:46 */ SET FOREIGN_KEY_CHECKS=0; -- ---------------------------- -- Table structure for l2vote -- ---------------------------- CREATE TABLE `l2vote` ( `id` int(11) NOT NULL auto_increment, `name` varchar(200) NOT NULL, `ip` varchar(25) NOT NULL, `date` date NOT NULL, `status` varchar(255) NOT NULL, PRIMARY KEY (`id`) ) ENGINE=MyISAM /*!40101 DEFAULT CHARSET=DEFAULT */; ============================================================== /*регистрация исправления*/reg.php function checkform(f){ -----------заменить---------------------------------ошибка в начальном исправление------------- if(!f.account.value){alert('ляляля');f.account.focus();return false;} jsfield = new String(f.account.value); if (jsfield.length<4){alert ('лялялялял');f.account.value='';f.account.focus();return false;} jsfield = new String(f.account.value); if (jsfield.length>16){alert ('лялялялял');f.account.value='';f.account.focus();return false;} ----------- -----------на это if (f.account.value==""){alert("лялялляля");f.account.value='';f.account.focus();return false;} jsfield = new String(f.account.value); if (jsfield.length<4){alert ('лялялялялляля');f.account.value='';f.account.focus();return false;} jsfield = new String(f.account.value); if (jsfield.length>16){alert ('ляляляллял');f.account.value='';f.account.focus();return false;} if (!isAlphaNumeric(f.account.value)){alert("лялялялял");return false;} -------------------------------------------------------------------------------------------- Это лутше (мои переделки Ж))))--> создать .Js .css и поместить в engine например upreg.js ниже есть код., далее classSites.css, ниже есть код. тагже можно добавить рускую регистрацию найдите все a-zA-Z0-9 и поменять a-zA-Zа-яА-Я0-9 там где это надо осторожно надо читать о кодировках иначе будут каракули замена на сервере gameserver (config/server.properties) правим URL = jdbc:mysql://localhost/l2jdb на это URL = jdbc:mysql://localhost/l2jdb?useUnicode=true&characterEncoding=utf-8 осторожно я использую utf-8 CnameTemplate = .* PetNameTemplate = .* тоже самое добовляем (правим) reg2.php // anti-injection <----------------------------------------reg2.php if (!eregi("^[a-zA-Z0-9_]+$", $_POST['account'])) die ("<p>".$lang_128."</p>"); if (!eregi("^[a-zA-Z0-9_]+$", $_POST['password'])) die ("<p>".$lang_110."</p>"); if (!eregi("^([a-zA-Z0-9])+([.a-zA-Z0-9_-])*@([a-zA-Z0-9_-])+(.[a-zA-Z0-9_-]+)+", $_POST['email'])) die ("<p>".$lang_114."</p>"); if (!eregi("^[a-zA-Z_]+$", $_POST['question1'])) die ("<p>".$lang_116."</p>"); if (!eregi("^[a-zA-Z_]+$", $_POST['answer1'])) die ("<p>".$lang_117."</p>"); // end anti-injection /*--------------------------------------upreg.js-----------------------------------------------*/ function isAlphaNumeric(value){ if (value.match(/^[a-zA-Z0-9_]+$/)) return true; return false;} function checkform(f) { if (f.account.value==""){alert("Введите Логин");f.account.value='';f.account.focus();return false;} jsfield = new String(f.account.value); if (jsfield.length<4){alert ('Поле Логин должно быть длиннее 4 символов');f.account.value='';f.account.focus();return false;} jsfield = new String(f.account.value); if (jsfield.length>16){alert ('Поле Логин должно быть меньше 16 символов.');f.account.value='';f.account.focus();return false;} if (!isAlphaNumeric(f.account.value)){alert("Логин должен состоять из английских букв и/или цифр!");return false;} if (f.password.value==""){alert("Введите Пароль");f.password.value='';f.password.focus();return false;} jsfield = new String(f.password.value); if (jsfield.length<4){alert ('Поле Пароль должно быть длиннее 4 символов');f.password.value='';f.password.focus();return false;} jsfield = new String(f.password.value); if (jsfield.length>16){alert ('Поле Пароль должно быть меньше 16 символов.');f.password.value='';f.password.focus();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("Пароль и повтор пароля не совпадают!"); 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("Введите Секретный вопрос");return false;} if (!f.question1.value.match(/^[a-zA-Z_]+$/)){alert("Вопрос должен сосотять только из латинских букв!");return false;} if (!f.answer1.value.match(/^[a-zA-Z_]+$/)){alert("Ответ должен сосотять только из латинских букв!");return false;} if (f.answer1.value==""){alert("Введите Секретный ответ");return false;} if(!f.keystring.value){alert('Введите код безопасности');f.keystring.focus();return false;}return true; } function checkLogin(){var login=document.getElementById('login').value;$("#logincheck").html('<img src="engine/img/i1.gif" />');$("#logincheck").load("engine/chek.php", {login:login});}; function checkpass(){var pass=document.getElementById('pass').value;$("#passcheck").html('<img src="engine/img/i1.gif" />');$("#passcheck").load("engine/chek.php", { pass:pass});}; function checkpassb(){var passb=document.getElementById('passb').value;$("#passbcheck").html('<img src="engine/img/i1.gif" />');$("#passbcheck").load("engine/chek.php", {passb:passb});}; function checkemail(){var email=document.getElementById('email').value;$("#emailcheck").html('<img src="engine/img/i1.gif" />');$("#emailcheck").load("engine/chek.php", {email:email});}; function checkquest(){var quest=document.getElementById('quest').value;$("#questcheck").html('<img src="engine/img/i1.gif" />');$("#questcheck").load("engine/chek.php", {quest:quest});}; function checkanswe(){var answe=document.getElementById('answe').value;$("#answecheck").html('<img src="engine/img/i1.gif" />');$("#answecheck").load("engine/chek.php", {answe:answe});}; function checkkeys(){var keys=document.getElementById('keys').value;$("#keyscheck").html('<img src="engine/img/i1.gif" />');$("#keyscheck").load("engine/chek.php", {keys:keys});}; /*---------------------------------------------------------------end---------------------------------------------------*/ /*-----------------------------------------------------classSites.css,-------------------------------------------------*/ div.Akkaunts_reg{position:relative;width:554px;margin:0 auto;font-family:Tahoma,Verdana,Helvetica,sans-serif;} div.Akkaunts_reg h4{margin:10px 50px;background:#151515;padding:5px;border: 1px solid #796A53;} .Akkrega{background:#151515;width:355px;margin:0 auto;padding:10px 50px 35px 50px;border: 1px solid #796A53;} ul.Akkrega li{position:relative;line-height:22px;font-weight:900;border-top: 1px dashed #202020;} ul.Akkrega input {background:#612A1B;border:0;line-height:22px;color:#78DE78;padding:1px 5px;position:absolute;right:0;top:2px;width:190px;font-size:14px;font-weight:700;} #logincheck,#passcheck,#passbcheck,#emailcheck,#questcheck,#answecheck,#keyscheck{position:absolute;right:-20px;top:0;} .Akkregimg img {position:relative;left:178px;top:4px;height:40px;width:120px;} #Akkregb {position:absolute;bottom:10px;right:100px;width:150px;} /*---------------------------------------------------------------end---------------------------------------------------*/ =========================================================== далее удоляем лишнее reg.php if (@mysql_selectdb("$db1", $Server)){ <-после этого echo"<script type=\"text/javascript\" src=\"engine/jquery.js\"></script><script type=\"text/javascript\" src=\"engine/upreg.js\"></script><link rel=\"stylesheet\" type=\"text/css\" href=\"engine/classSites.css\"> <div class=\"Akkaunts_reg\"><h4>$lang_103<font color=\"#880000\">*</font>- Обязательные поля ввода</h4><form method=\"post\" id=\"regform\" action=\"reg2.html\" onsubmit=\"return checkform(this)\" name=\"f\" ><ul class=\"Akkrega\"> <li><span>$lang_120 : <font color=\"#880000\">*</font></span><input type=\"text\" name=\"account\" maxlength=\"16\" onblur=\"checkLogin();\" id=\"login\" class=\"formakk\"><div id=\"logincheck\"></div></li> <li><span>$lang_121 : <font color=\"#880000\">*</font></span><input type=\"password\" name=\"password\" maxlength=\"16\" onblur=\"checkpass();\"id=\"pass\" class=\"formakk\"><div id=\"passcheck\"></div></li> <li><span>$lang_122 : <font color=\"#880000\">*</font></span><input type=\"password\" name=\"password2\" maxlength=\"16\" onblur=\"checkpassb();\"id=\"passb\" class=\"formakk\"><div id=\"passbcheck\"></div></li> <li><span>E-mail : <font color=\"#880000\">*</font></span><input type=\"text\" name=\"email\" maxlength=\"30\" onblur=\"checkemail();\"id=\"email\" class=\"formakk\"><div id=\"emailcheck\"></div></li> <li><span>$lang_123 : <font color=\"#880000\">*</font></span><input type=\"text\" name=\"question1\" maxlength=\"30\" onblur=\"checkquest();\"id=\"quest\" class=\"formakk\"><div id=\"questcheck\"></div></li> <li><span>$lang_124 : <font color=\"#880000\">*</font></span><input type=\"text\" name=\"answer1\" maxlength=\"30\" onblur=\"checkanswe();\"id=\"answe\" class=\"formakk\"><div id=\"answecheck\"></div></li> <li class=\"Akkregimg\"><span><a href=\"#captcha\" onClick=\"document.getElementById('image').src='engine/kcaptcha/index.php?rand='+Math.round(1000 * Math.random());\">$lang_126</a></span><img src=\"engine/kcaptcha/index.php\" id=\"image\" > </li><li><span>$lang_125 : <font color=\"#880000\">*</font></span><input type='text' name='keystring' onblur=\"checkkeys();\"id=\"keys\" class=\"formakk\"><div id=\"keyscheck\"></div></li> </ul><input type=\"submit\" id=\"Akkregb\" name=\"submit\" value=$lang_127 class=\"submit\" ></form></div>"; до этого ->}else {echo $no_connect;} ==============================================================================end reg.php добавление с заменной l2auth Аккаунт ----------------------------------------------------------------- echo "<option value=$login>$login</option>";}} closedir($dir);} echo" </select></form>"; } } ------------------------------------------------------------от $form=("<link rel=\"stylesheet\" type=\"text/css\" href=\"engine/classSites.css\"><form action=\"\" method=\"POST\"> <ul class=\"akkentry\"><li><input type=\"text\"name=\"log\"value=\"Логин\"class=\"form\"maxlength=\"16\"onfocus=\"this.style.backgroundColor='#151515';this.value='';\" onblur=\"this.style.backgroundColor='#101010';if (this.value != '') {this.onfocus = function(){this.style.backgroundColor='#993300';};} else this.value='Логин';\"></li> <li><input type=\"password\"name=\"pass\"value=\"Пароль\"class=\"form\"maxlength=\"16\"onfocus=\"this.style.backgroundColor='#151515';this.value='';\" onblur=\"this.style.backgroundColor='#101010';if (this.value != '') {this.onfocus = function(){this.style.backgroundColor='#993300';};} else this.value='Пароль';\"></li> <li><input type=\"hidden\" value=\"docheck\" name=\"todo\"><input type=\"submit\" class=\"akkentry_b\" value=\"Вход\"></li></form><li><a href=\"reg.html\">Регистрация</a></li><li><a href=\"repass.html\">Забыли пароль?</a></li></ul></center> "); $name=$_SESSION['name']; $result=@mysql_query('SELECT * from accounts where login="'.$name.'"',$my_auth); $res1=@mysql_fetch_array($result); $lastactive=@$res1['lastactive']; $lastIP=@$res1['lastIP']; $today =date('j M Y -H\:i',$lastactive/1000); if ($_SESSION['auth']=='1'){echo"<center><hr width=\"70%\" >Привет <b>$name</b><hr width=\"70%\" >"; if ($_SESSION['access']=='100'){ echo' <a href="changepass.html">Сменить Пароль</a><br> <a href="teleport.html">Телепорт в город</a><br> <br>Admin menu<br><table><tr><td> <form action="lk.html" method="POST"><input type="submit" value="admin1"></form></td> <td><form action="lk.html" method="POST"><input type="submit" value="admin2"></form></td></tr> <tr><td><form action="lk.html" method="POST"><input type="submit" value="admin3"></form></td> <td><form action="lk.html" method="POST"><input type="submit" value="admin4"></form></td></tr></table> <br>User menu<br>';} echo' <a href="lk.html">Ваши персы</a><br> <a href="feedback.html">Обратная связь</a><br> <a href="exit.html">Выход</a>'; } ----------------------------------------------------до else { if ($_POST['todo']=='') echo $form; --------------------------------------------------------- |---------- фаил [engine/classSites.css с] .akkentry {background:#070707;border: 1px solid #574B32;padding:10px;margin-top:10px;width:300px;} .akkentry li{margin-bottom:5px;} .akkentry input {border:0;padding:1px 3px;font-weight:900;background:#101010;border: 1px solid #574B32;color:#E0C598;} input.akkentry_b {width:80px;} =================================== Moy web-4.1 ,База знаний С5 от Корсара мною поправлена для 4.1 вылажил на dump http://dump.ru/file/4428195 пароль как и везде на мой веб moyweb.moy.su Добавлено (14.Мар.2010, 11:41:56) --------------------------------------------- Ой забыл у меня капча изменина вдруг картинка будет нехорошо выглядит капча есть здесь http://www.captcha.ru/kcaptcha/ настройка ненужна все файлы под замену
Сообщение отредактировал TomAlko - Воскресенье, 14.Мар.2010, 11:45:12 |
|
| | ПРОФИЛЬ
Motorola | Дата: Среда, 17.Мар.2010, 10:10:56 | Сообщение # 2 |
Лейтенант
Группа: Пользователи
Сообщений: 43
Статус: Offline
| Много написанно. но проблема решается очень просто. Если вылезла ошибка "необходимо изменить таблицу аккаунт" при попытке регистрации значит сравните названия столбцов в вашей БД а таблице аккаунт с файлом рег2 выбранной команды. точнее с этой строкой: mysql_query("INSERT INTO accounts (login, password, lastactive, accessLevel, lastIP, email, question1, answer1) VALUES ('".$_POST['account']."', '". base64_encode(pack('H*', sha1(utf8_encode($_POST['password'])))) ."', 0, 0, 0, '".$_POST['email']."', '".$_POST['question1']."', '".$_POST['answer1']."')", $Login); тут есть 2 варианта проблемы: или не создалить доп. столбцы, email, question1, answer1 или не соответствуют названия login, password, lastactive, accessLevel, lastIP с БД. Если не совпадают названия, просто исправте их в файле рег2 как написанно в БД. Вот и всё.
Сообщение отредактировал Motorola - Среда, 17.Мар.2010, 10:14:22 |
|
| | ПРОФИЛЬ
TomAlko | Дата: Воскресенье, 21.Мар.2010, 08:33:55 | Сообщение # 3 |
Сержант
Группа: Пользователи
Сообщений: 29
Статус: Offline
| О тока заметил я ошибку зделал в аккаунте (не то вставил) под l2jserver CREATE TABLE IF NOT EXISTS `accounts` ( `login` VARCHAR(45) NOT NULL default '', `password` VARCHAR(45) , `lastactive` DECIMAL(20), `accessLevel` TINYINT NOT NULL DEFAULT 0, `lastIP` CHAR(15) NULL DEFAULT NULL, `lastServer` TINYINT DEFAULT 1, `userIP` char(15) DEFAULT NULL, `pcIp` char(15) DEFAULT NULL, `hop1` char(15) DEFAULT NULL, `hop2` char(15) DEFAULT NULL, `hop3` char(15) DEFAULT NULL, `hop4` char(15) DEFAULT NULL, `email` varchar(40) default NULL, `question1` varchar(40) default NULL, `answer1` varchar(40) default NULL, `codes` varchar(20) default NULL, PRIMARY KEY (`login`) );Добавлено (21.Мар.2010, 08:33:55) --------------------------------------------- Не ну понятно! а как другие каторые тока начали осваивать? Мне легче так чем обяснять как создать калонку в Mysql мне ешё больше писать пришлось бы. темболее я там 2 ошибки описал сразу
Сообщение отредактировал TomAlko - Воскресенье, 21.Мар.2010, 08:32:22 |
|
| |
|