БЫСТРАЯ РЕГИСТРАЦИЯ В UNET - Скрипты - UCOZ - Каталог файлов - Каморка
kamorka
Menu
Правила чата
Пользователи онлайн
Мини-чат
+Мини-чат
0
Онлайн всего: 2
Гостей: 2
Пользователей: 0
   Категории

Комментарии

KaMoRkA.uCoz.com -- uCoz -- Скрипты


Регистрируясь в uNet'e, приходится вводить очень много информации, много обязательных полей. Многим просто лень все это заполнять. В этом скрипте всего два обязательных поля — email и каптча. Логин генерируется сам, если поле не заполнить, пароль, имя, фамилия… тоже. Если не указана дата рождения, выберется дата, указанная в скрипте. все это легко настраивается в скрипте.

В CSS прописываем код:
Code
/* === Регистрация unet (by ****) === */    
    .bf{text-align:left; margin-bottom: 1px; margin-top: 1px;}    
    .sf{clear:left;float:left;width:105px;}    
    .bf input[type='text'] {border: 1px solid #b8b8b8; color: #696969; padding: 2px 4px; width: 155px;}    
    .bf input[type='text']:focus {border: 1px solid #a6a6a6; color: #575757;}    
    .bf input[type='button'] {padding: 2px 4px;}    
    .bf img {display: none; border: none;}    
    .xt-show{background-position:0 -240px;}    
    .xt-show-over{background-position:-15px -240px;}    
    .xt-hide{background-position:0 -255px;}    
    .xt-hide-over{background-position:-15px -255px;}    
    .rh {display: none;}    
    #hideCont {display: none;}    
    #capcode {width: 160px; height: 35px; text-align: center; color: grey; font-size: 14pt;}    
    /* ======================================= */

Это по месту:
Code
<?ifnot $USER_LOGGED_IN$?><script type="text/javascript" src="http://ucodes.ru/js/unetReg.js"></script>    <a href="javascript:reg.init();">Регистрация</a><?endif?>

Это файл /js/unetReg.js
Code
/* 
   *** Регистрация в uNet 
   *** by zzzz 
   *** 
   *** 21.12.2010 (Bogggdan) 
   */ 

var reg = { 
   init: function () { 
    var html = '<fieldset><div class="bf"><div class="sf">E-mail:</div> <input type="text" onblur="reg.check.email(this);" name="email"> <img align="absmiddle" alt=""> </div><hr>' + '<div class="bf"><div class="sf">Логин:</div> <input type="text" onblur="reg.check.nick(this);" name="nick"> <img align="absmiddle" alt=""> </div><hr>' + '<div class="bf"><div class="sf">Пароль:</div> <input type="text" onblur="reg.check.pass(this);" name="password"> <img align="absmiddle" alt=""> </div><hr>' + '<div class="bf"><div class="sf">Пол:</div> <input name="gender" value="2" onchange="reg.check.gener(this);" id="fGender2" type="radio"><label for="fGender2">Женщина</label> <input name="gender" onchange="reg.check.gener(this);" value="1" id="fGender1" type="radio"><label for="fGender1">Мужчина</label> <img align="absmiddle" alt=""></div> <hr>' + '<div class="bf rh"><div class="sf">Настоящее имя:</div> <input type="text" onblur="reg.check.name(this);" name="name"> <img align="absmiddle" alt=""> </div><hr class="rh">' + '<div class="bf rh"><div class="sf">Дата рождения:</div> <select size="1" name="by" onchange="reg.check.birth(this);"><option value="0">Год</option><option value="2005">2005</option><option value="2004">2004</option><option value="2003">2003</option><option value="2002">2002</option><option value="2001">2001</option><option value="2000">2000</option><option value="1999">1999</option><option value="1998">1998</option><option value="1997">1997</option><option value="1996">1996</option><option value="1995">1995</option><option value="1994">1994</option><option value="1993">1993</option><option value="1992">1992</option><option value="1991">1991</option><option value="1990">1990</option><option value="1989">1989</option><option value="1988">1988</option><option value="1987">1987</option><option value="1986">1986</option><option value="1985">1985</option><option value="1984">1984</option><option value="1983">1983</option><option value="1982">1982</option><option value="1981">1981</option><option value="1980">1980</option><option value="1979">1979</option><option value="1978">1978</option><option value="1977">1977</option><option value="1976">1976</option><option value="1975">1975</option><option value="1974">1974</option><option value="1973">1973</option><option value="1972">1972</option><option value="1971">1971</option><option value="1970">1970</option><option value="1969">1969</option><option value="1968">1968</option><option value="1967">1967</option><option value="1966">1966</option><option value="1965">1965</option><option value="1964">1964</option><option value="1963">1963</option><option value="1962">1962</option><option value="1961">1961</option><option value="1960">1960</option><option value="1959">1959</option><option value="1958">1958</option><option value="1957">1957</option><option value="1956">1956</option><option value="1955">1955</option><option value="1954">1954</option><option value="1953">1953</option><option value="1952">1952</option><option value="1951">1951</option><option value="1950">1950</option><option value="1949">1949</option><option value="1948">1948</option><option value="1947">1947</option><option value="1946">1946</option><option value="1945">1945</option><option value="1944">1944</option><option value="1943">1943</option><option value="1942">1942</option><option value="1941">1941</option><option value="1940">1940</option><option value="1939">1939</option><option value="1938">1938</option><option value="1937">1937</option><option value="1936">1936</option><option value="1935">1935</option><option value="1934">1934</option><option value="1933">1933</option><option value="1932">1932</option><option value="1931">1931</option><option value="1930">1930</option></select>-<select size="1" name="bm" onchange="reg.check.birth(this);"><option value="0">Месяц</option><option value="1">Январь</option><option value="2">Февраль</option><option value="3">Март</option><option value="4">Апрель</option><option value="5">Май</option><option value="6">Июнь</option><option value="7">Июль</option><option value="8">Август</option><option value="9">Сентябрь</option><option value="10">Октябрь</option><option value="11">Ноябрь</option><option value="12">Декабрь</option></select>-<select size="1" name="bd" onchange="reg.check.birth(this);"><option value="0">День</option><option value="1">1</option><option value="2">2</option><option value="3">3</option><option value="4">4</option><option value="5">5</option><option value="6">6</option><option value="7">7</option><option value="8">8</option><option value="9">9</option><option value="10">10</option><option value="11">11</option><option value="12">12</option><option value="13">13</option><option value="14">14</option><option value="15">15</option><option value="16">16</option><option value="17">17</option><option value="18">18</option><option value="19">19</option><option value="20">20</option><option value="21">21</option><option value="22">22</option><option value="23">23</option><option value="24">24</option><option value="25">25</option><option value="26">26</option><option value="27">27</option><option value="28">28</option><option value="29">29</option><option value="30">30</option><option value="31">31</option></select> <img align="absmiddle" alt=""> </div><hr class="rh">' + '<div class="bf rh"><div class="sf">Место жительства:</div> <span id="locSel"></span> <img align="absmiddle" alt=""> </div><hr class="rh">' + '<div class="bf"><div class="sf"> </div> <input type="button" value="Регистрация" onclick="reg.checkAll();"> </div>' + '</fieldset>'; 
    new _uWnd('reg', 'Регистрация', 365, 220, { 
     customButtons: { 
      'show': [true, function () { 
       reg.showFields(); 
      }], 
      'hide': [false, function () { 
       reg.hideFields(); 
      }] 
     }, 
     icon: 'http://ucodes.ru/upload/icons/reg.png', 
     hideonmove: 0, 
     oncontent: function () { 
      reg.getLocations(); 
     } 
    }, 
    html); 
   }, 
   icons: { 
    'ok': 'http://ucodes.ru/upload/icons/ok.png', 
    'error': 'http://ucodes.ru/upload/icons/error.png', 
    'load': 'http://ucodes.ru/upload/icons/load.gif' 
   }, 
   check: { 
    email: function (el) { 
     var v = el.value, 
     img = $(el).parent().find("img"); 
     if (v.length == 0) { 
      $(img).fadeOut("slow"); 
      return; 
     } 
     $(img).attr("src", reg.icons.load).show(); 
     if (/^[a-zA-Z0-9_\.\-]+\@[a-zA-Z0-9\.\-]+\.[a-zA-Z0-9]{2,6}$/.test(v)) { 
      $.post("/index/sub/", { 
       email: v, 
       a: 50 
      }, 
      function (de) { 
       var _data = $(de).text(); 
       if (_data.indexOf("ok.p") != -1) $(img).attr("src", reg.icons.ok) 
       else if (_data.indexOf("заня") != -1) { 
        $(img).attr("src", reg.icons.error); 
        reg.msg('Email занят другим пользователем', false); 
       } 
       else $(img).attr("src", reg.icons.error); //unknown error 
      }); 
     } 
     else { 
      $(img).attr("src", reg.icons.error); 
      reg.msg('Проверьте правильность ввода E-mail', false); 
     } 
    }, 
    nick: function (el) { 
     var v = el.value, 
     img = $(el).parent().find("img"); 
     if (v.length == 0) { 
      $(img).fadeOut("slow"); 
      return; 
     } 
     $(img).attr("src", reg.icons.load).show(); 
     if (v.length > 2) { 
      $.post("/index/", { 
       nick: v, 
       a: 49 
      }, 
      function (dn) { 
       var _data = $(dn).text(); 
       if (_data.indexOf("ok.p") != -1) $(img).attr("src", reg.icons.ok); //ник не занят 
       else if (_data.indexOf("прещен") != -1) { 
        $(img).attr("src", reg.icons.error); 
        reg.msg('Найдены запрещенные символы', false); 
       } 
       else if (_data.indexOf("использ") != -1) { 
        $(img).attr("src", reg.icons.error); 
        reg.msg('Ник занят', false); 
       } 
       else $(img).attr("src", reg.icons.error); //unknown error 
      }); 
     } 
     else { 
      $(img).attr("src", reg.icons.error); 
      reg.msg('Слишком короткий ник', false); 
     } 
    }, 
    pass: function (el) { 
     var v = el.value, 
     img = $(el).parent().find("img"); 
     if (v.length == 0) { 
      $(img).fadeOut("slow"); 
      return; 
     } 
     $(img).show(); 
     if ((v.length < 6) || (/^(.)\1*$/.test(v))) { 
      $(img).attr("src", reg.icons.error); 
      reg.msg('Пароль слишком простой', false); 
     } 
     else if (v.length > 15) { 
      $(img).attr("src", reg.icons.error); 
      reg.msg('Максимальная длина пароля — 15 символов', false); 
     } 
     else if (/[^a-zA-Z0-9\-_]/.test(v)) { 
      $(img).attr("src", reg.icons.error); 
      reg.msg('В пароле найдены запрещенные символы', false); 
     } 
     else $(img).attr("src", reg.icons.ok); //норм пасс 
    }, 
    gener: function (el) { 
     $($(el).parent().find("img")).show().attr("src", reg.icons.ok); 
    }, 
    birth: function (el) { 
     var img = $(el).parent().find("img"); 
     if (($("select[name='by']").val() != 0) && ($("select[name='bm']").val() != 0) && ($("select[name='bd']").val() != 0)) { 
      $(img).attr("src", reg.icons.ok).show(); 
     } 
     else $(img).attr("src", reg.icons.error).show(); //не выбран день, месяц или год 
    }, 
    location: function (el) { 
     var img = $(el).parent().parent().find("img"), 
     v = el.value; 
     if (parseInt(v) == -1) { 
      $(img).hide(); 
      reg.intCheck = setInterval(function () { 
       reg.check.locationi(el); 
      }, 
      1100); 
      new _uWnd('Loc', 'Выбрать место жительства', 600, 500, { 
       hideonmove: 0, 
       autosize: 0, 
       closeonesc: 1 
      }, 
      { 
       url: '/index/47', 
       cache: 1 
      }); 
     } 
     else if (parseInt(v) > 0) { 
      $(img).attr("src", reg.icons.ok).show(); 
     } 
     else { 
      $(img).attr("src", reg.icons.error).show(); 
     } 
    }, 
    locationi: function (el) { 
     var img = $(el).parent().parent().find("img"), 
     v = el.value; 
     if (v != -1) { 
      $(img).attr("src", reg.icons.ok).show(); 
      clearInterval(reg.intCheck); 
     } 
    }, 
    name: function (el) { 
     var img = $(el).parent().find("img"), 
     v = el.value; 
     if (v.length == 0) { 
      $(img).fadeOut("slow"); 
      return; 
     } 
     if (/[!"#\$%&()*+:;<=>?\@\[\]^{}|~]/.test(v) || v.length < 2) { 
      $(img).attr("src", reg.icons.error); 
      reg.msg('А свое ли имя вы ввели?', false); 
     } 
     else $(img).attr("src", reg.icons.ok).show(); 
    } 
   }, 
   msg: function (txt, type) { 
    var color = type == false ? "red": "green"; 
    _uWnd.alert('<span style="color:' + color + '">' + txt + '</span>', 'Информация', { 
     w: 270, 
     h: 70 
    }); 
   }, 
   showFields: function () { 
    $(".rh").fadeIn("slow", function () { 
     _uWnd.getbyname('reg').checksize(); 
    }); 
    _uWnd.getbyname('reg').showcustombutton('show', false); 
    _uWnd.getbyname('reg').showcustombutton('hide', true); 
   }, 
   hideFields: function () { 
    $(".rh").fadeOut("slow", function () { 
     _uWnd.getbyname('reg').checksize(); 
    }); 
    _uWnd.getbyname('reg').showcustombutton('show', true); 
    _uWnd.getbyname('reg').showcustombutton('hide', false); 
   }, 
   getLocations: function () { //Подгружаем select места жительства. Кто знает - тот поймет 
    $.get("/index/3", function (data) { 
     $("#locSel").html($("<select/>").attr({ 
      id: 'fLocation', 
      name: 'location' 
     }).change(function () { 
      reg.check.location($("#fLocation")[0]); 
     }).html($("#fLocation", data).find("option").slice(1).clone())); 
    }); 
   }, 
   Gen: function (len) { 
    var pass = ""; 
    for (var i = 0; i < len; i++) { 
     var ran = Math.floor(Math.random() * 3), 
     //цифры, большие и маленькие буквы 
     cd = ran == 0 ? (Math.floor(Math.random() * 24) + 65) : ran == 1 ? (Math.floor(Math.random() * 10) + 48) : (Math.floor(Math.random() * 24) + 97); 
     pass += String.fromCharCode(cd); 
    } 
    return pass; 
   }, 
   checkAll: function () { 
    if ($("div.bf img[src$='error.png']:visible").size() > 0) { 
     reg.msg('Исправьте допущенные ошибки', false); 
     return; 
    } 
    else if ($("input[name='email']").val().length == 0) { 
     reg.msg('Поле «E-mail» обязательно для заполнения', false); 
     return; 
    } 
    else { 
     var objFields = {}; 
     $([["email"], ["nick"], ["password"], ["gender", 0, 1], ["name"], ["by", 1], ["bm", 1], ["bd", 1], ["location", 1]]).each(function () { 
      var name = $(this)[0], 
      tag = $(this)[1] ? "select": "input", 
      ch = $(this)[2] ? ":checked": "", 
      val = $(tag + "[name='" + name + "']" + ch).val(); 
      if ((typeof val != "undefined") && (val != "0") && val) { 
       objFields[name] = val; 
      } 
     }); 
     reg.Fields = $.extend({ 
      password: reg.Gen(10), 
      //Если пасс не введен, генерируется 
      name: 'ucodesru' + reg.Gen(5), 
      //Имя, если не введено (ucodesru + 5 случ. символов) 
      name_perm: 0, 
      //все могут видеть имя 
      surname: 'ucodesru' + reg.Gen(5), 
      //Фамилия (ucodesru + 5 случ. символов) 
      surname_perm: 0, 
      //все могут видеть фамилию 
      nick: 'ucodesru' + reg.Gen(5), 
      //ник, если не введен (ucodesru + 5 случ. символов) 
      by: '1980', 
      //год рожд., если не введен 
      bm: '9', 
      // === месяц 
      bd: '13', 
      // === день 
      birth_perm: 0, 
      //все видят дату рождения 
      gender: 1, 
      //мужик, если нет инфы о поле 
      location: '214020097', 
      //если нет инфы о месте проживания, живем в Киеве 
      photo: '', 
      //фото. нах надо, необязательно же 
      avatar: 'http://ucodes.ru/images/noava.png', 
      //наша аватарка 
      site: 'http://ucodes.ru/', 
      //дом. страница 
      terms: 1, 
      //подтверждаем условия 
      code: '', 
      //тут будет каптча 
      seckey: '', 
      a: 51, 
      act: '', 
      rnd: '', 
      ssid: '' 
     }, 
     objFields); 
     reg.capImg(); 
    } 
   }, 
   capImg: function () { 
    new _uWnd('acap', 'Код с картинки', 360, 80, { 
     shadow: 0, 
     autosize: 0, 
     alert: 1, 
     oncontent: function () { 
      $.get("/index/3", function (data) { 
       var _sos = data.match(/\=_dS\(\'(.+)\'\)\;/)[1].replace(/\\\'/g, "'"), unsos = reg.sos(_sos); 
       if (unsos) reg.Fields.sos = unsos; 
       reg.Fields.password1 = reg.Fields.password; 
       reg.Fields.seckey = $("#uNetRegF input[name='seckey']", data).val(); 
       reg.Fields.act = $("#uNetRegF input[name='act']", data).val(); 
       reg.Fields.rnd = $("#uNetRegF input[name='rnd']", data).val(); 
       reg.Fields.ssid = $("#uNetRegF input[name='ssid']", data).val(); 
       reg.checkCupKey = $("#chCodeForm input[name='seckey']", data).val(); 
       var img = $("#secImg", data).clone(); 
       setTimeout(function () { 
        $("#capImgSpan").html(img); 
        $("#hideCont").show(); 
        $("#imgwait").hide(); 
        $("#capcode").focus(); 
       }, 
       100); 
      }); 
     } 
    }, 
    '<img src="/.s/img/wd/3/ajax.gif" alt="loading" id="imgwait"><span id="hideCont"><span id="capImgSpan"></span> <input type="text" id="capcode" onkeyup="try{reg.checkCapCode();}catch(e){}"></span>'); 
   }, 
   checkCapCode: function () { 
    var v = $("#capcode").val(); 
    if (v.length >= 5) { 
     $.post("/index/", { 
      code: v, 
      seckey: reg.checkCupKey, 
      a: 48 
     }, 
     function (ch) { 
      var _d = $(ch).text(); 
      if (_d.indexOf("ok.p") != -1) { 
       reg.Fields.code = v; 
       reg.postForm(); // true code, post 
      } 
      else if (_d.indexOf("Непра") != -1) { 
       $("#capcode").val("").focus(); 
       $("#secImg").trigger("click"); 
      } 
      else reg.msg('Unknown error', false); 
     }); 
    } 
   }, 
   postForm: function () { 
    $(_uWnd.getbyname('acap').wnd).animate({ 
     opacity: 0 
    }, 
    1500); //slow hide uwnd 
    $.post("/index/sub/", reg.Fields, function (regData) { 
     var rdata = $(regData).text(); 
     if (rdata.indexOf("regDone") != -1) { 
      reg.success(); 
     } 
     else alert(rdata); 
    }); 
   }, 
   sos: function (code) { 
    for (var i = 0, _i = code.length - 1, session = ''; i < _i; i++) { 
     session += String.fromCharCode(code.charCodeAt(i) - code.substr(_i, 1)); 
    } 
    return session.match(/\d+/g); 
   }, 
   success: function () { 
    _uWnd.close('acap'); 
    _uWnd.close('reg'); 
    new _uWnd('s', 'Регистрация прошла успешно', 290, 180, { 
     align: 0 
    }, 
    '<fieldset><legend>Ваши данные</legend>Email: ' + reg.Fields.email + '<br>Пароль: ' + reg.Fields.password + '<br>Никнейм: ' + reg.Fields.nick + '<hr><div style="color: blue; font-weight: bold; text-align: center;">Подтвердите ваш email для окончания регистрации</div></fieldset>'); 
   } 
}

Важно!

При копировании материала указывать ссылку на источник.

- 452
- 27-Ноября-2016
- 1
Материал разместил:

Похожий материал
14:07:40 Не рабочий,требует доработки.В место показа капчи начинается без-конечная прагрузка...
Статьи сайта