Мод предназначен для проверки введенных данных "на лету"..по скринам все поймете..

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 вашего стиля закинуть прилагаемые картинки
http://s2.uploads.ru/t/0czBt.gif
http://s2.uploads.ru/t/9kLwX.gif

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"); 
} 

?>

Скрины:
http://bit-torrent.kiev.ua/attachment.php?attachmentid=703&amp;d=1212315302 http://bit-torrent.kiev.ua/attachment.php?attachmentid=704&amp;d=1212315326 http://bit-torrent.kiev.ua/attachment.php?attachmentid=705&amp;d=1212315340