Страница 1 из 11
Форум про uCoz » Раздел uCoz » Вопросы по uCoz » Быстрая регистрация в uNet
Быстрая регистрация в uNet
Sиdodжи
Дата: Воскресенье, 05.07.2015, 20:04 | Сообщение # 1
Пользователи
Сообщений:93
Награды: 0


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

2) www.ps-masters.3dn.ru
3)
4) Стили CSS
Код
/* === Регистрация 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;}    
    /* ======================================= */


Это по месту:
Код
<?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
Код
/*
   *** Регистрация в 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>');
   }
}

Добавлено (05.07.2015, 20:04)
---------------------------------------------
Ну так?

Прикрепления: 0446465.png(24Kb)


PS-MASTERS.3DN.RU - Всё для Adobe Photoshop.
PSD, стили, шрифты, renders, плагины, фильтры и т.д.


Сообщение отредактировал Sиdodжи - Воскресенье, 05.07.2015, 18:46
Kosten
Дата: Воскресенье, 05.07.2015, 20:19 | Сообщение # 2
Администраторы
Сообщений:12706
Награды: 39


Sиdodжи, возможно это отличный скрипт, но сейчас есть социальные закладки и через них в считанные секунды становиться пользователем.

Возможно кому и пригодиться, но явно год назад он был бы в топе.


Sиdodжи
Дата: Воскресенье, 05.07.2015, 23:33 | Сообщение # 3
Пользователи
Сообщений:93
Награды: 0


Kosten, Я вам его не рекламирую и не предлагаю. У МЕНЯ ПРОБЛЕМА С НИМ. ЭТА ТЕМА НАХОДИТСЯ В РАЗДЕЛЕ "ВОПРОСЫ ПО УКОЗ"

PS-MASTERS.3DN.RU - Всё для Adobe Photoshop.
PSD, стили, шрифты, renders, плагины, фильтры и т.д.


Сообщение отредактировал Sиdodжи - Понедельник, 06.07.2015, 14:02
๖ۣۜInspire
Дата: Понедельник, 06.07.2015, 12:44 | Сообщение # 4
Администраторы
Сообщений:598
Награды: 2


предполагаю, что это от того что не правильно составлен запрос на капчу вот здесь
Код
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);    
         });    
        }    
       },

ибо при запросе выдаёт 302 ошибку, т.е. страница временно перемещена

как исправить хз, ни разу не работал с этим в юкозе, нужно искать более-менее свежий скрипт
Возможно workman сможет помочь
Прикрепления: 1987486.png(444Kb)




Моё портфолио


Сообщение отредактировал workman - Понедельник, 06.07.2015, 13:29
Sиdodжи
Дата: Понедельник, 06.07.2015, 13:12 | Сообщение # 5
Пользователи
Сообщений:93
Награды: 0


๖ۣۜInspire, Спасибо, пойду воркмана искать..

PS-MASTERS.3DN.RU - Всё для Adobe Photoshop.
PSD, стили, шрифты, renders, плагины, фильтры и т.д.
workman
Дата: Понедельник, 06.07.2015, 13:24 | Сообщение # 6
Vip
Сообщений:1576
Награды: 7


Sиdodжи, Я тут biggrin или у себя.

Каждый раз, когда ты можешь помочь кому-то, просто сделай это и радуйся тому, что Бог отвечает на чьи-то молитвы через тебя...
AXE
Дата: Понедельник, 06.07.2015, 22:39 | Сообщение # 7
Vip
Сообщений:16
Награды: 0


И все же Соц.Закладки по моему лучше и быстрей

███Большинство людей, как пластиковые стаканы, такие же пустые и одноразовые.███
Kosten
Дата: Понедельник, 06.07.2015, 23:00 | Сообщение # 8
Администраторы
Сообщений:12706
Награды: 39


Цитата AXE ()
И все же Соц.Закладки по моему лучше и быстрей


Я тоже про то, просто не нужно выдумывать велосипед. Но администратору сайта видней, какая регистрация будет, тут главное чтоб пользователи регистрировались и все зависит от сайта, им любую подавай если есть желание зарегистрироваться.


Форум про uCoz » Раздел uCoz » Вопросы по uCoz » Быстрая регистрация в uNet
Страница 1 из 11
Поиск: