Вы давно мечтали сделать проверку логина у себя на сайте, как при регистрации на UcoZ'е, но не знали, как это сделать? Можете воспользоваться ГОТОВЫМ решением! Подойдёт для любых сайтов. Использовать лучше на сайтах с большим количеством пользователей.
Всё по шагам, для новичков и продвинутых пользователей!
Сам материал:
1. Вставляется в шаблон "Персональная страница пользователя" после :
Code
<span id="chUName" style="display:none;">Проверка логина, так сказать :)</span>
2. Теперь самая важная часть, вставка скрипта в шаблон "Форма регистрации пользователей":
около
Version 1
Code
<input type="text" id="siF13" class="manFlLogin" name="user" value="" size="20" style="width:200px" maxlength="25" onchange="PrepareLoginToChecking();SubmitLoginToCheck()" />
<iframe name="lf" src="/index/8-0-*" height="1px" width="1px" frameborder="0" onload="GetMessageAboutAvailableLogin()"></iframe>
<input type="hidden" id="tch" value="*">
<span id="msg"></span>
<script>
/* */
function PrepareLoginToChecking()
{
var original=("-").split("*")
var neww=("~").split("*")
var xy=0
for(xy=0; xy<=(original.length-1); xy++) {
var original1="/"+original[xy]+"/g"
document.getElementById("tch").value = document.getElementById("siF13").value.replace(eval(original1), neww[xy])
}
}
function SubmitLoginToCheck()
{
if(document.getElementById("siF13").value.length <= 1)
{
document.getElementById('msg').innerHTML='<span style=\"font-size:7pt;\"><img src=\"http://src.ucoz.ru/img/icon/er.png\" align=\"absmiddle\" border=\"0\"> Введите логин</span>';
return false;
}
window.lf.location='/index/8-0-'+document.getElementById("tch").value+'';
document.getElementById('msg').innerHTML='<span style=\"font-size:7pt;\"><img src=\"http://src.ucoz.ru/img/wd/3/ajaxs.gif\" align=\"absmiddle\" border=\"0\"> Проверка логина...</span>';
}
function GetMessageAboutAvailableLogin()
{
if(document.getElementById("siF13").value.length <= 1)
{
document.getElementById('msg').innerHTML='<span style=\"font-size:7pt;\"><img src=\"http://src.ucoz.ru/img/icon/er.png\" align=\"absmiddle\" border=\"0\"> Введите логин</span>';
return false;
}
if(window.lf.document.getElementById('chUName'))
{
document.getElementById('msg').innerHTML='<span style=\"font-size:7pt;\"><img src=\"http://src.ucoz.ru/img/icon/er.png\" align=\"absmiddle\" border=\"0\"> Логин занят</span>';
}
else
{
document.getElementById('msg').innerHTML='<span style=\"font-size:7pt;\"><img src=\"http://src.ucoz.ru/img/icon/ok.png\" align=\"absmiddle\" border=\"0\"> Логин свободен</span>';
}
}
</script>
Version2.1
Code
<span id="msgL" style="font:7pt;"> </span>
<input type="hidden" id="tch" value="*">
<script type="text/javascript">
//
//
var Lok;
var L = document.getElementById('siF13');
L.style.width = '50%';
L.onchange = 'PrepareLoginToChecking();SubmitLoginToCheck()';
if(navigator.appName=='Microsoft Internet Explorer'){L.attachEvent('onchange', function() {PrepareLoginToChecking();SubmitLoginToCheck()},true)}else{
L.addEventListener('change', function() {PrepareLoginToChecking();SubmitLoginToCheck()}, true)}
var lmsg = document.getElementById('msgL');
function checkLogin(){
if (L.value.match(/[^a-zA-Z0-9\-\_\@\%\{\}\[\]\(\)\u0080-\uFFFF]/)){
Lok=0;
document.getElementById('msgL').innerHTML='<img border="0" src="http://src.ucoz.ru/img/icon/er.png" align="absmiddle" width="16" height="16"> В логине присутствуют недопустимые символы';
}
else if (L.value.length<2){
Lok=0;
document.getElementById('msgL').innerHTML='<img border="0" src="http://src.ucoz.ru/img/icon/er.png" align="absmiddle" width="16" height="16"> Минимальная длина логина <b>2</b> символа';
}
else if (L.value.length>25){
Lok=0;
document.getElementById('msgL').innerHTML='<img border="0" src="http://src.ucoz.ru/img/icon/er.png" align="absmiddle" width="16" height="16"> Максимальная длина логина <b>25</b> символов';
}
else {
Lok=1;
document.getElementById('msgL').innerHTML='<img border="0" src="http://src.ucoz.ru/img/icon/ok.png" align="absmiddle" width="16" height="16"> Логин введён корректно';
}
}
function PrepareLoginToChecking()
{
var original=("-").split("*");
var neww=("~").split("*");
var xy=0;
while(xy<=(original.length-1)) {
var original1="/"+original[xy]+"/g";
document.getElementById("tch").value = L.value.replace(eval(original1), neww[xy]);
xy++;
}
}
function SubmitLoginToCheck()
{
checkLogin();
if(Lok != 1)
{
return false;
}
window.lf.location='/index/8-0-'+document.getElementById("tch").value+'';
document.getElementById('msgL').innerHTML='<img src=\"http://src.ucoz.ru/img/wd/3/ajaxs.gif\" align=\"absmiddle\" border=\"0\"> Проверка логина...';
}
function GetMessageAboutAvailableLogin()
{
checkLogin();
if(Lok != 1)
{
return false;
}
if(window.lf.document.getElementById('chUName'))
{
document.getElementById('msgL').innerHTML='<img src=\"http://src.ucoz.ru/img/icon/er.png\" align=\"absmiddle\" border=\"0\"> Логин занят';
}
else
{
document.getElementById('msgL').innerHTML='<img src=\"http://src.ucoz.ru/img/icon/ok.png\" align=\"absmiddle\" border=\"0\"> Логин свободен';
}
}
</script> <iframe name="lf" src="/index/8-0-*" style="display:none;" height="1px" width="1px" frameborder="0" onload="GetMessageAboutAvailableLogin()"></iframe>
версии 2.1 добавлено:
- Полная поддержка Internet Explorer.
Скрипт тестировался в браузерах:
Microsoft Internet Explorer 7 - успешно;
Opera 9.50 - успешно;
Mozilla Firefox 2.0.0.6 - успешно. Внимание! Для корректной работы скрипта надо включить опцию "Просмотр пользовательских страниц" для гостей! В противном случае, всегда будет выдаваться сообщение о том, что логин свободен.
Внимание! Не потеряйте участок кода, который вставляется в шаблон профиля. Помните, что при смене дизайна, использовании конструктора шаблонов, восстановлении шаблона этот код может быть утерян.