ОсновноеRadiotalkПользовательское
MPCHAT - CMS хостинг чатов для профессионалов
90   •   Посмотреть все темы

Слово-ключ при регистрации

 

151
Ton_Dao @Ton_Dao
Вопрос такой. Есть ли возможность сделать регистрацию возможной только после введения слова-ключа. То есть - у нас есть правила. В них спрятан ключ. Процедура поиска ключа для ролевых обычная, но дабы убедиться, что правила прочитаны еще до начала игры было бы замечательно, если бы была возможность создать поле с названием "ключ" и регистрация проходила бы только в том случае, если ключ введен правильно... Возможно это, или нет?

6703
Андрей @ZloVeЩиЙ
прятать кнопку - как вариант или делать ее неактивной... и только после того как одно поле заполнено и заполнено верно, делать её активной(:
ничего сложного, обычное js условие ))

151
Ton_Dao @Ton_Dao
К сожалению, я не на столько хорошо разбираюсь в яве для этого. ) По этому прошу помощи, если кто может сотворить такой скрипт. )

2615
Сергей @Pegass
Ton Dao, давай ссылку на свой чат - сделаю js и кину сюда описание как его поставить, проблема будет в том что это можно обойти)))))

4619
Web3r @Web3r
проблема будет в том что это можно обойти)))))

Лекарство от любителей отключать js:

<head>
<noscript><meta http-equiv="refresh" content="0; URL=bla_bla_bla.html"></noscript>
</head>

2615
Сергей @Pegass
Нафига отключать js когда можно просто вставить свою форму)))

4619
Web3r @Web3r
Об этом догадается один из ста... 😀

20090
Dimitry @Dimitry
Web3r пишет:

проблема будет в том что это можно обойти)))))

Лекарство от любителей отключать js:

<head>
<noscript><meta http-equiv="refresh" content="0; URL=bla_bla_bla.html"></noscript>
</head>

если отключить яву то тогда и кнопки не будет

2970
удалён @Foggy
[quote=Ton Dao]Вопрос такой. Есть ли возможность сделать регистрацию возможной только после введения слова-ключа. То есть - у нас есть правила. В них спрятан ключ. Процедура поиска ключа для ролевых обычная, но дабы убедиться, что правила прочитаны еще до начала игры было бы замечательно, если бы была возможность создать поле с названием "ключ" и регистрация проходила бы только в том случае, если ключ введен правильно... Возможно это, или нет?[/quote]
Добавляешь новый инпут. Где уж там тебе угодно, главное вставь между </tr> и <tr>. Лучше чтобы это было не последним пунктом в регистрации.
<tr>
<td>Слово-ключ</td>
<td><input type=text name=key class=text onblur="blur(this.form)"><font color="#FF0000">*</font></td>
</tr>

Туда они будут вводить этот ключ.

Далее отыскиваешь скрипт в конце регистрации и в самое его начало, т.е. до /* скрыть форму при удачной регистрации (id=regform) */ пишешь следующее:
function blur(k) {
var d = document.done; // d - кнопка "регистрация"
var s = "то_самое_заветное_слово"; // тут без объяснений ясно
if(k.value==s) {
d.removeAttribute('disabled');
} else {
d.setAttribute('disabled');
}
}

Честно говоря, не тестировал написанное. Вполне может не работать.

UPD: на кнопку регистрации надо disabled повесить
добавь красное к своей кнопке
<input type=submit name=done value=Регистрация class=ok disabled>

Ну и ещё хорошо бы воспользоваться советом Web3r выше, чтобы фильтровать тех, у кого js отключен.

20090
Dimitry @Dimitry
Повторюсь, фильтровать народ без явыскрипт нет смысла)
и disabled надо по умолчанию на кнопку...

2970
удалён @Foggy
если отключить яву то тогда и кнопки не будет

почему не будет? она же html'ем выводится. если явой выводить, то не будет. но у него не тот случай.

2615
Сергей @Pegass
Так можно и через JS вывести

function blur(k) {
var s = "то_самое_заветное_слово"; // тут без объяснений ясно
if(k.value==s)
{
d.removeAttribute('disabled');
var obj=document.createElement('input');
obj.name="done";
obj.value="Зарегистрироваться";
obj.type="submit";
document.getElementById("ИД_ФОРМЫ").appendChild(obj);
}
}

Отредактировано Pegass - 29.07.2012
20090
Dimitry @Dimitry
я к тому то если поставить disabled в неё она не будет работать, и зачем тут проверять работает ява или нет?

7094
Dim @Render
😀 В отдельном чате на 5м двиге это будет сделать очень легко через php)

151
Ton_Dao @Ton_Dao
********** - Ссылка на чат вот. Вечером попробую протестировать предложенное. )

151
Ton_Dao @Ton_Dao
Прошу прощения. Не было не возможности, не времени попробовать что либо из написанного. Итого.
Первый вариант не прокатил. Если добавляю disabled, то кнопка не нажимается совсем (введено слово, или нет). Убираю - нажимается, но так же не зависимо от слова-ключа.
Хотел попробовать второй вариант, но не смог в силу своей неграмотности...

Pegass пишет:

Так можно и через JS вывести

function blur(k) {
var s = "то_самое_заветное_слово"; // тут без объяснений ясно
if(k.value==s)
{
d.removeAttribute('disabled');
var obj=document.createElement('input');
obj.name="done";
obj.value="Зарегистрироваться";
obj.type="submit";
document.getElementById("ИД_ФОРМЫ").appendChild(obj);
}
}


Озадачило вот что:

document.getElementById("ИД_ФОРМЫ").appendChild(obj);
Так и не смой понять, что за айди и где его искать. )

2615
Сергей @Pegass
[quote=Ton Dao]Прошу прощения. Не было не возможности, не времени попробовать что либо из написанного. Итого.
Первый вариант не прокатил. Если добавляю disabled, то кнопка не нажимается совсем (введено слово, или нет). Убираю - нажимается, но так же не зависимо от слова-ключа.
Хотел попробовать второй вариант, но не смог в силу своей неграмотности...

Озадачило вот что:

document.getElementById("ИД_ФОРМЫ").appendChild(obj);
Так и не смой понять, что за айди и где его искать. )[/quote]
В чате по приведённой тобой выше ссылке, ID формы regform , а значит вот так

document.getElementById("regform").appendChild(obj);
Плюс что то мне подсказывает, что в этом коде не совсем верно

<tr>
<td>Слово-ключ</td>
<td><input type=text name=key class=text onblur="blur(this.form)"><font color="#FF0000">*</font></td>
</tr>

Кажется, что красное тут лишнее

Отредактировано Pegass - 10.08.2012
151
Ton_Dao @Ton_Dao
Та же история. Все попробовал, но судя по всему проблема как раз в disabled. Ставлю его - кнопка не срабатывает не под каким предлогом. Убираю - работает. Код убирал, но оставлял disabled - не работает. Вот так вот... )

2615
Сергей @Pegass
выложи весь код страницы регистрации

151
Ton_Dao @Ton_Dao
Вопрос снимаю. Выловил человека, который хорошо шарит в коде и всегда помогал проекту. Он сам все сделал. Код же выложу целиком. Мало ли кому пригодится. )

<html>
<head>
<title>Регистрация</title>
<META http-equiv=Content-Type content="text/html; charset=windows-1251">
<link rel=STYLESHEET type=text/css href=style.css>
</head>
<script src=http://mpchat.com/chat/?inc=informer></script>
<body class=reg-body>
<center>
<b>Регистрация</b><br><font color=red>Запрещены логины на латинице</font><br>

<font color=ff0000>
<script>
/* вывод ошибки при неудачной регистрации */
if(err==1) document.write('Слишком много зарегистрированных, обратитесь к админу!');
if(err==2) document.write('Вы забыли заполнить одно из обязательных полей!');
if(err==3) document.write('Ошибка синтаксиса или длинны ника.');
if(err==4) document.write('Не используйте латиницу и кирилицу одновременно!');
if(err==5) document.write('Извините, но такой участник уже зарегистрирован.');
if(err==6) document.write('Неправильно указан email.');
if(err==7) document.write('Код введён неверно или устарел, попробуйте ещё раз!');
if(err==8) document.write('Слишком много данных, максимально 2000 символов!');
if(err==9) document.write('Регистрация невозможна, обратитесь к админу!');
</script>
</font>
<form action='' method=post id=regform onsubmit="if(document.getElementById('key').value!='Уважение'){alert('Ключ неправильный! Вы найдете его, если прочитаете правила на форуме.'); return false;}">

<table border="1">
<tr>
<td colspan="2" align="center" id="rega" ><script language="JavaScript" type="text/javascript">
document.write(parent.document.title)
</script></td>

</tr>
<tr>
<td>Логин</td>
<td><input name=nick type=text class=text id="nick" onchange="document.getElementById('nick').value=document.getElementById('nick').value.replace(/([a-zA-Z0-9]+)/,'')"><font color="#FF0000">*</font></td>
</tr>


<tr>
<td>Имя персонажа </td><td><textarea cols=40 rows=1 name=name class=text></textarea></td></tr>


<tr>
<td>Пол</td>
<td><input type=radio name=w class=text onclick="form.mw.value=0;men()" > <font color="#0000FF">М</font>
<input type=radio name=w class=text onclick="form.mw.value=1;women()"> <font color="#FF0000">Ж</font> <font color="#FF0000">*</font>
<input type=hidden name=mw class=text></td>
</tr>


<tr>
<td>Раса </td><td><textarea cols=40 rows=1 name=land class=text></textarea></td></tr>


<tr>
<td>Внешность (кратко. Макс. 2000 знаков)</td><td><textarea cols=40 rows=5 name=about class=text></textarea></td></tr>
<tr>





<tr>
<td>E-mail</td>
<td><input name=email type=text class=text><font color="#FF0000">*</font></td>
</tr>
<tr>
<td>Пароль</td>
<td><input name=pass type=password class=text ><font color="#FF0000">*</font></td>
</tr>
<tr>
<td>Повторите пароль</td>
<td><input name=passok type=password class=text><font color="#FF0000">*</font></td>
</tr>
<tr>
<td>Код <script>document.write('<img src=index.php?inc=code&xcode='+xcode+'><input type=hidden name=xcode value='+xcode+'>');</script></td>
<td><input type=text name=code class=text><font color="#FF0000">*</font></td>
</tr>
<tr>
<td>Ключ (ключ указан в правилах)</td>
<td><input id=key value=""></td>
</tr>

<tr>
<td>Рассылка (новости игры)</td>
<td><input name=subscribe type=checkbox ></td>
</tr>

<td><label for=

agree id="labelagree" >С <a href="http://rpg-narion.ru/viewforum.php?id=3" target=iframe>правилами</a> ознакомлен.</label></td>
<td><input type=checkbox name=agree onClick='changeButtonStatus();'><input type=submit name=done value=Регистрация class=ok ></td>
</tr>
<tr>
<td colspan="2" align="center"><font color="#FF0000">*</font>-обязательные поля</td>

</tr>

</table>




</form>

<font color=336699>
<script>

/* скрыть форму при удачной регистрации (id=regform) */
if(regok>0) document.getElementById('regform').style.display='none';

/* вывод сообщения об удачной регистрации */
if(regok==1) document.write('Регистрация завершена!');
if(regok==2) document.write('Регистрация завершена, дождитесь подтверждения регистрации админом!');
if(regok==3) document.write('Регистрация завершена, вам отправлено письмо для подтверждения регистрации!');

/* Через 3 секунды после удачной регистрации перенаправить в чат */
var timewait=3;
if(regok==1 && nick && id) {
document.write('<br>Вы будете перенаправлены в чат автоматически!');
document.write('<form id=joinform action=./ method=post target=_top style="display:inline;">');
if(i_aidn) document.write('<input type=hidden name=i_aidn value='+i_aidn+'>');
if(nick) document.write('<input type=hidden name=nick value='+nick+'>');
if(nick) document.write('<input type=hidden name=id value='+id+'>');
document.write('</form>');
window.setTimeout('document.getElementById("joinform").submit();',1000*timewait);
}
</script>
</font>

</center>
</body>
</html>

Все протестировано, все работает. ) Всем огромное спасибо за помощь. )