Мод предназначен для проверки введенных данных "на лету"..по скринам все поймете..
1. signup.php
найти
Код:
<p> <form method="post" action="takesignup.php"> <table border="1" cellspacing=0 cellpadding="10"> <tr><td align="right" class="heading"><?=$tracker_lang['signup_username'];?></td><td align=left><input type="text" size="40" name="wantusername" /></td></tr> <tr><td align="right" class="heading"><?=$tracker_lang['signup_password'];?></td><td align=left><input type="password" size="40" name="wantpassword" /></td></tr> <tr><td align="right" class="heading"><?=$tracker_lang['signup_password_again'];?></td><td align=left><input type="password" size="40" name="passagain" /></td></tr> <tr valign=top><td align="right" class="heading"><?=$tracker_lang['signup_email'];?></td><td align=left><input type="text" size="40" name="email" /> <table width=250 border=0 cellspacing=0 cellpadding=0><tr><td class=embedded><font class=small><?=$tracker_lang['signup_email_must_be_valid'];?></td></tr> </font></td></tr></table> </td></tr>
заменить на
Код:
<p> <script language="JavaScript" src="js/ajax.js" type="text/javascript"></script> <form method="post" action="takesignup.php"> <table border="1" cellspacing=0 cellpadding="10"> <tr valign=top><td align="right" class="heading"><?=$tracker_lang['signup_username'];?></td><td align=left><input type="text" size="60" name="wantusername" id="wantusername" onblur="signup_check('username'); return false;"/><div id="check_username"></div></td></tr> <tr valign=top><td align="right" class="heading"><?=$tracker_lang['signup_password'];?></td><td align=left><input type="password" size="60" name="wantpassword" id="wantpassword"/></td></tr> <tr valign=top><td align="right" class="heading"><?=$tracker_lang['signup_password_again'];?></td><td align=left><input type="password" size="60" name="passagain" id="passagain" onblur="signup_check('password'); return false;"/><div id="check_password"></div></td></tr> <tr valign=top><td align="right" class="heading"><?=$tracker_lang['signup_email'];?></td><td align=left><input type="text" size="60" name="email" id="email" onblur="signup_check('email'); return false;"/><div id="check_email"></div> <table width=250 border=0 cellspacing=0 cellpadding=0><tr><td class=embedded><font class=small><?=$tracker_lang['signup_email_must_be_valid'];?></td></tr> </font></td></tr></table> </td></tr>
найти
Код:
stdfoot();
перед вставить
Код:
print("<div id='loading-layer'></div>")
2. include/global.php
найти
Код:
$linebreak = "\r\n";
после вставить
Код:
function ajaxerr($text, $width="135") { print("<div id='ajaxerror' style='width: ".$width."px;'>$text</div>\n"); return; } function ajaxsucc($text, $width="135") { print("<div id=ajaxsuccess style='width: ".$width."px;'>$text</div>\n"); return; }
3. js/ajax.js
найти
Код:
this.createAJAX(); }
после вставить
Код:
function signup_check(action) { var ajax = new tbdev_ajax(); ajax.onShow (''); var varsString = ""; ajax.requestFile = "check_signup.php"; if (action == "username") ajax.setVar("username", document.getElementById('wantusername').value); if (action == "password"){ ajax.setVar("password", document.getElementById('wantpassword').value); ajax.setVar("passagain", document.getElementById('passagain').value);} if (action == "email") ajax.setVar("email", document.getElementById('email').value); ajax.element = 'check_' + action; ajax.setVar("action", action); ajax.method = 'POST'; ajax.sendAJAX(varsString); }
4. Ваш файл стилей .css
в конце вставить
Код:
div#ajaxerror { background: #FFDDDD url(images/err.gif) no-repeat 5px 50%; padding:5px 5px 5px 24px; text-align:left; font-family:Verdana, Arial, Helvetica, sans-serif; color:#333; font-size:11px; } div#ajaxsuccess { background: #E7FFCE url(images/succ.gif) no-repeat 5px 50%; padding:5px 5px 5px 24px; text-align:left; font-family:Verdana, Arial, Helvetica, sans-serif; color:#333; font-size:11px; }
5. В папку images вашего стиля закинуть прилагаемые картинки
6. Создать в корне трекера файл check_signup.php
Код:
<? require_once("include/bittorrent.php"); dbconn(); header ("Content-Type: text/html; charset=windows-1251"); if ($_POST["action"] == "username"){ function validusername($username) { if ($username == "") return false; $allowedchars = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789"; for ($i = 0; $i < strlen($username); ++$i) if (strpos($allowedchars, $username[$i]) === false) return false; return true; } $wantusername = $_POST["username"]; $res = (@mysql_fetch_row(@sql_query("select count(*) from users where username='$wantusername'"))) or die(mysql_error()); if ($res[0] != 0) ajaxerr("Пользователь $wantusername уже зарегистрирован", "294"); elseif (empty($wantusername)) ajaxerr("Не указано имя пользователя", "294"); elseif (strlen($wantusername) > 12) ajaxerr("Имя пользователя должно быть не более 12 символов", "294"); elseif (!validusername($wantusername)) ajaxerr("Неверное имя пользователя", "294"); else ajaxsucc("Вы можете использовать это имя", "294"); } if ($_POST["action"] == "password"){ $wantpassword = $_POST["password"]; $passagain = $_POST["passagain"]; if (empty($wantpassword)) ajaxerr("Введите пароль", "294"); elseif (empty($passagain)) ajaxerr("Продублируйте пароль", "294"); elseif ($wantpassword != $passagain) ajaxerr("Пароли не совпадают.", "294"); elseif (strlen($wantpassword) < 6) ajaxerr("Минимальная длина пароля 6 символов", "294"); elseif (strlen($wantpassword) > 40) ajaxerr("Максимальная длина пароля 40 символов", "294"); else ajaxsucc("Вы можете использовать этот пароль", "294"); } if ($_POST["action"] == "email"){ $email = $_POST["email"]; $res = (@mysql_fetch_row(@sql_query("select count(*) from users where email='$email'"))) or die(mysql_error()); if (empty($email)) ajaxerr("Не указан e-mail адрес", "294"); elseif ($res[0] != 0) ajaxerr("Этот e-mail адрес уже зарегистрирован", "294"); else ajaxsucc("Вы можете использовать этот e-mail адрес", "294"); } ?>
Скрины: