БЫСТРАЯ РЕГИСТРАЦИЯ В UNET - Скрипты - UCOZ - Каталог файлов - Каморка
Пользователи онлайн
− Мини-чат
+ Мини-чат
0
Онлайн всего: 2
Гостей: 2
Пользователей: 0
Регистрируясь в 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
Не рабочий,требует доработки.В место показа капчи начинается без-конечная прагрузка...
Регистрация позволит Вам стать полноценным участником данного проекта.
Вы сможете оставлять комментарии, просматривать скрытый текст, голосовать в опросах и многое другое.
В случае возникновения проблем с регистрацией, напишите администратору сайта.
Соглошения:
Администрация данного сайта не несет ответственность за использование ресурсов доступных
на этом сайте. Вся информация дана исключительно в образовательных целях.
Вся информация, расположенная на этом сайте предназначена только для ознакомительных целей,
авторы не несут ответственности за возможные последствия использования их в целях,
запрещенных Уголовным Кодексом . Вы обязуетесь не применять полученные здесь программы
и информацию в целях, запрещённых УК . Ни при каких условиях и обстоятельствах
ответственность за последствия, которые прямо или косвенно повлекло за собой
использование информации или программного обеспечения, размещенного на этом сайте,
не может возлагаться на авторов сайта и быть основанием для их судебного преследования.
Вы соглашаетесь с указанными условиями, можете приступить к регистрации и дальнейшему
просмотру материалов. В противном случае рекомендуется немедленно покинуть сайт.
Общие правила поведения на сайте:
Начнем с того, что на сайте общаются сотни людей, разных религих и взглядов,
и все они являются полноправными посетителями нашего сайта,
поэтому если мы хотим чтобы это сообщество людей функционировало нам и необходимы правила.
Мы настоятельно рекомендуем прочитать настоящие правила,
это займет у вас всего минут пять,
но сбережет нам и вам время и поможет сделать сайт более интересным и организованным.
Начнем с того, что на нашем сайте нужно вести себя уважительно ко всем посетителям сайта.
Не надо оскорблений по отношению к участникам, это всегда лишнее. Если есть претензии -
обращайтесь к Админам или Модераторам (воспользуйтесь личными сообщениями ).
Оскорбление других посетителей считается у нас одним из самых тяжких нарушений и строго
наказывается администрацией. У нас строго запрещен расизм, религиозные и политические
высказывания. Заранее благодарим вас за понимание и за желание сделать наш сайт более
вежливым и дружелюбным.
На сайте запрещено:
- сообщения, не относящиеся к содержанию статьи или к контексту обсуждения
- оскорбление и угрозы в адрес посетителей сайта
- в комментариях запрещаются выражения, содержащие ненормативную лексику, унижающие
человеческое достоинство, разжигающие межнациональную рознь
- спам, а также реклама любых товаров и услуг, иных ресурсов, СМИ или событий, не
относящихся к контексту обсуждения статьи
Давайте будем уважать друг друга и сайт, на который Вы и другие читатели приходят пообщаться и высказать свои мысли.
Администрация сайта оставляет за собой право:
Удалять комментарии или часть комментариев, если они не соответствуют данным требованиям.
C уважением администрация сайта
Онлайн всего: 2
Гостей: 2
Пользователей: 0