ExBB Community ExBB Community
 Сайт проекта ExBB Общение объединяет!
Войдите на форум при помощиВойти через loginza
 Чат на форуме      Помощь      Поиск      Пользователи     BanList BanList


 Страниц (5): [1] 2 3 4 5 »   

> Описание: MOD: Check registration with AJAX
luigi
Отправлено: 3 августа 2009 — 10:28
Post Id


Пользователь
Newbie


Покинул форум
Сообщений всего: 10
Дата рег-ции: Март 2009  
Репутация: 2




/!\ Последнюю версию мода (доработанную, на русском языке) Вы можете найти здесь!

Hi,

to check registration form in real time (with AJAX), make this change:

in the front of agreed.tpl add this code:

CODE:
<script type="text/javascript" language="JavaScript">
<!--
function checkUsername(username,area) {
JsHttpRequest.query('jsloader.php?loader=verify', {action: area, value: username}, function(data,text) {
document.getElementById('checkusername').innerHTML=text;
}, false);
}

function checkPassword(password,area) {
JsHttpRequest.query('jsloader.php?loader=verify', {action: area, value: password}, function(data,text) {
document.getElementById('checkpassword').innerHTML=text;
}, false);
}

function checkMail(email,area) {
JsHttpRequest.query('jsloader.php?loader=verify', {action: area, value: email}, function(data,text) {
document.getElementById('checkmail').innerHTML=text;
}, false);
}

//-->
</script>


and change the input line of username, password and e-mail, so:

CODE:
<td class="profilright"><input onblur="checkUsername(this.value,'username');" type="text" style="width: 200px" size="35" maxlength="20" name="inmembername">&nbsp;<span id="checkusername"></span></td>


CODE:
<td class="profilright"><input onblur="checkPassword(this.value,'password');" type="text" size="20" name="password" maxlength="16">&nbsp;<span id="checkpassword"></span></td>


CODE:
<td class="profilright"><input onblur="checkMail(this.value,'email');" type="text" name="emailaddress" style="width: 200px" size="20" maxlength="255"> &nbsp;<span id="checkmail"></span></td>



In the jsloader.php, found

CODE:
if ($fm->input['loader'] === 'karma'){


and replace with

CODE:
if ($fm->input['loader'] === 'verify'){

if ($fm->input['action'] === 'username') {

if ($fm->input['value'] == '') {
echo "<img src='./images/wrong.png' border='0'>&nbsp;<span class='warning'>".$fm->LANG['ErrUsernameEmpty']."</span>";
die();
}

$allusers = $fm->_Read('./data/users.php',FALSE);
$user_id = 0;
foreach ($allusers as $u_id=>$info) {
if ($fm->input['value'] == $info['n']) {
$user_id = $u_id;
break;
}
}
$_RESULT["error"] = 0;
if ($user_id != 0) echo "<img src='./images/wrong.png' border='0'>&nbsp;<span class='warning'>".$fm->LANG['ErrUsernameUsed']."</span>";
else echo "<img src='./images/ok.png' border='0'>&nbsp;<span class='ok'>".$fm->LANG['ErrUsernameOk']."</span>";

} elseif ($fm->input['action'] === 'email') {
if ($fm->_Chek_Mail('value') === FALSE) echo "<img src='./images/wrong.png' border='0'>&nbsp;<span class='warning'>".$fm->LANG['ErrEmailWrong']."</span>";
else echo "<img src='./images/ok.png' border='0'>&nbsp;<span class='ok'>".$fm->LANG['ErrEmailOk']."</span>";

} elseif ($fm->input['action'] === 'password') {
if (strlen($fm->input['value']) < 6 ) echo "<img src='./images/wrong.png' border='0'>&nbsp;<span class='warning'>".$fm->LANG['ErrPasswordWrong']."</span>";
else echo "<img src='./images/ok.png' border='0'>&nbsp;<span class='ok'>".$fm->LANG['ErrPasswordOk']."</span>";
}

} elseif ($fm->input['loader'] === 'karma'){




add this to style.css

CODE:
.warning {color: red;}
.ok {color: green;}


add this line to lang_front_all.php

CODE:
$this->LANG['ErrUsernameOk'] = 'Username available';
$this->LANG['ErrUsernameUsed'] = 'Username already used by other user';
$this->LANG['ErrUsernameEmpty'] = 'Username MUST be filled!';

$this->LANG['ErrEmailOk'] = 'E-mail OK';
$this->LANG['ErrEmailWrong'] = 'E-mail not valid !';

$this->LANG['ErrPasswordOk'] = 'valid password';
$this->LANG['ErrPasswordWrong'] = 'password not valid';


Here a demo:
http://www.bitlibero.com/flatbb/...x.php?s=register

This is a screenshot:
Прикреплено изображение (Нажмите для увеличения)
mod_check.gif

(Отредактировано автором: 3 августа 2009 — 10:31)

 
 
yura3d
Отправлено: 3 августа 2009 — 12:38
Post Id


Пользователь
ExBB Team
ExBB Developer
ExBB Mods Author


Покинул форум
Сообщений всего: 3394
Дата рег-ции: Февр. 2009  
Откуда: Минск, Беларусь
Репутация: 353




Hello! Thank's for your mod, it's a good idea to check up the register data by Ajax, but I've found some moments
First, all input data (from the $fm->input array) is need to be initialized before using in the scripts (initialization methods _Intval(), _String(), etc from include/vars.class.php may be call from $fm object). Second, the nicknames should be checked in lower case (check the example with nickname adMIN on your forum). So, it's neccessary to add this string (file jsloader.php):
CODE:
$fm->input['value'] = $fm->_LowerCase($fm->input['value']);

before this:
CODE:
$allusers = $fm->_Read('./data/users.php',FALSE);

And third, it would be good thing if the check backend code will be splitted to the functions and will be included to the jsloader.php from another file (to improve code utilization and protect garbaging backend loader jsloader.php)

luigi пишет:
FBB_SKINDIR.DEF_SKIN

We are not using these constants in ExBB FM, so, I've deleted this fragment
 
 
luigi
Отправлено: 3 августа 2009 — 13:18
Post Id


Пользователь
Newbie


Покинул форум
Сообщений всего: 10
Дата рег-ции: Март 2009  
Репутация: 2




yura3d
Well!! many thanks for Your reply.

I hope You can translate my incorrect post in Russian and control my code

(Отредактировано автором: 3 августа 2009 — 13:21)

 
 
electron
Отправлено: 3 августа 2009 — 13:33
Post Id



Администратор
ExBB Team


Покинул форум
Сообщений всего: 3882
Дата рег-ции: Февр. 2009  
Репутация: 338




Yes, yura3d, please translate this mod in russian if he is so good Подмигивание
 
 
luigi
Отправлено: 3 августа 2009 — 14:22
Post Id


Пользователь
Newbie


Покинул форум
Сообщений всего: 10
Дата рег-ции: Март 2009  
Репутация: 2




wrong.png

Нажмите для увеличения


ok.png

Нажмите для увеличения
 
 
Borman
Отправлено: 3 августа 2009 — 17:55
Post Id


Пользователь
Full Member


Покинул форум
Сообщений всего: 182
Дата рег-ции: Февр. 2009  
Откуда: Украина, Донецк
Репутация: 3




Судя по скриншоту мод полезный, а вот если бы комментсы и наставления для установки, на русском бы были, был бы очень признателен, ибо иностранным языкам не обучен Закатив глазки
 
 
electron
Отправлено: 3 августа 2009 — 19:02
Post Id



Администратор
ExBB Team


Покинул форум
Сообщений всего: 3882
Дата рег-ции: Февр. 2009  
Репутация: 338




насколько я понял, мод выводит сообщения об ошибках при регистрации. т.е. Например, на форуме есть пользователь admin, а вы хотите регнуться с таким же ником. При вводе ника admin в окне регистрации справа окна будет выводиться ошибка типа "такой на форуме уже есть". то же самое будет с паролем и мылом.
редактируются файлы templates\ваш_скин\agreed.tpl , jsloader.php из корневой папки форума, templates\ваш_скин\style.css и language\russian\lang_front_all.php. правда что делать с первым файлом из этого списка я так и не понял, luigi слишком непонятно написал.
файлы wrong.png и ok.png по идее должны просто копироваться в папку templates\ваш_скин\im\
в'общем, как-то так...
 
 
yura3d
Отправлено: 3 августа 2009 — 19:12
Post Id


Пользователь
ExBB Team
ExBB Developer
ExBB Mods Author


Покинул форум
Сообщений всего: 3394
Дата рег-ции: Февр. 2009  
Откуда: Минск, Беларусь
Репутация: 353




Borman
electron
Не нужно устанавливать приведённую выше версию мода, в ней есть некоторые недочёты и отсутствует проверка каптчи на Ajax. Несколько позже я выложу доработанный вариант с инструкцией на русском
 
 
electron
Отправлено: 3 августа 2009 — 19:17
Post Id



Администратор
ExBB Team


Покинул форум
Сообщений всего: 3882
Дата рег-ции: Февр. 2009  
Репутация: 338




я пока и не собирался, понял по вашей переписке с luigi что он еще "сырой"
 
 
luigi
Отправлено: 3 августа 2009 — 19:57
Post Id


Пользователь
Newbie


Покинул форум
Сообщений всего: 10
Дата рег-ции: Март 2009  
Репутация: 2




Borman
electron
sorry, but English is not my native language (I am Italian) and I can read Russian only with Google translator.
 
 
electron
Отправлено: 4 августа 2009 — 04:17
Post Id



Администратор
ExBB Team


Покинул форум
Сообщений всего: 3882
Дата рег-ции: Февр. 2009  
Репутация: 338




luigi , Google translator - Отстой , Promt - the best for you Здорово
 
 
yura3d
Отправлено: 4 августа 2009 — 11:54
Post Id


Пользователь
ExBB Team
ExBB Developer
ExBB Mods Author


Покинул форум
Сообщений всего: 3394
Дата рег-ции: Февр. 2009  
Откуда: Минск, Беларусь
Репутация: 353




Вобщем, как и обещал, вот окончательная версия этого мода для ExBB FM 1.0 RC1. Бакэнд и фронтэнд проверки вынесены в отдельные файлы в виде функций, что позволяет в будущем более гибко расширять, дополнять и изменять функциональность мода (например, с лёгкостью можно расширить действие этого мода и на другие формы, например, форму создания темы), а также избегать излишних правок в скриптах и шаблонах при установке дополнительных скинов или необходимости изменения формата вывода сообщений об ошибках. В предложенном далее варианте мода также реализована проверка ввода защитного кода с картинки-каптчи. Данный мод полностью совместим с обновлением каптчи без перезагрузки страницы
Для установки небходимо проделать следующие изменения. Откройте файл jsloader.php, найдите строки:
CODE:
} elseif ($fm->input['loader'] === 'threadstop'){
include('modules/threadstop/threadstop.php');

И под ними разместите строки:
CODE:
} else if ($fm->input['loader'] == 'verify') {
include('include/JsHttpRequest/verify_forms.php');

Далее откройте файл templates/ваш_скин/agreed.tpl, найдите строку:
CODE:
<td class="profilright"><input type="text" style="width: 200px" size="35" maxlength="20" name="inmembername"></td>

И замените её строками:
CODE:
<td class="profilright"><input type="text" style="width: 200px" size="35" maxlength="20" name="inmembername" onblur="verify_register(this);" />
<span id="verify_inmembername"></span></td>

Затем в этом же файле найдите строку:
CODE:
<td class="profilright"><input type="text" size="20" name="password" maxlength="16"></td>

И замените её строками:
CODE:
<td class="profilright"><input type="text" size="20" name="password" maxlength="16" onblur="verify_register(this);">
<span id="verify_password"></span></td>

Далее найдите строку:
CODE:
<td class="profilright"><input type="text" name="emailaddress" style="width: 200px" size="20" maxlength="255"></td>

Замените её строками:
CODE:
<td class="profilright"><input type="text" name="emailaddress" style="width: 200px" size="20" maxlength="255" onblur="verify_register(this);" />
<span id="verify_emailaddress"></span></td>

Найдите фрагмент:
CODE:
<td class="profilright"><input type="text" style="width: 130px" name="captcha" size="13" maxlength="10">

Замените его фрагментом:
CODE:
<td class="profilright"><input type="text" style="width: 130px" name="captcha" size="13" maxlength="10" onblur="verify_register(this);" />
<span id="verify_captcha"></span>

И, наконец, найдите строку:
CODE:
</form>

И разместите под ней строку:
CODE:
<script language="JavaScript" src="javascript/verify_forms.js"></script>

Откройте файл templates/ваш_скин/style.css и в самое его начало добавьте строки:
CODE:
.verify_ok {
padding: 0 0 0 16px;
color: #00cc00;
background: url('im/ok.gif') no-repeat;
}
.verify_wrong {
padding: 0 0 0 16px;
color: #ff0000;
background: url('im/wrong.gif') no-repeat;
}

Если Вам покажется, что для отображения подсказок в правой части страницы не хватает места, Вы можете увеличить его в строке (этот же файл):
CODE:
.profilright { background-color: #F5F9FD; padding:6px; margin-top:1px;width:40%; border-top:1px solid #C2CFDF; }

Здесь 40% - это ширина столбца, содержащего непосредственно формы для ввода данных, справа от форм в этом столбце и будут выводиться предупреждения (см. скриншот ниже). При разрешении экрана 1024x768 оптимальной будет ширина 50%

Теперь откройте файл language/russian/lang_front_register.php, найдите строку:
CODE:
$this->LANG['YouZone'] = 'Введите необходимую разницу в часах относительно времени на форуме, и все время будет отображаться с учетом разницы в вашей временной зоне.';

И разместите под ней строки:
CODE:
$this->LANG['VerifyNameEmpty'] = 'Не введено имя';
$this->LANG['VerifyRuNicks'] = 'Русские ники запрещены';
$this->LANG['VerifyRuOrEn'] = 'Имя должно быть на одном языке';
$this->LANG['VerifyNameProtect'] = 'Имя содержит недопустимые слова';
$this->LANG['VerifyProfanity'] = 'Не используйте ругательства';
$this->LANG['VerifyNameExists'] = 'Такое имя уже есть на форуме';
$this->LANG['VerifyEmailEmpty'] = 'Не указан адрес e-mail';
$this->LANG['VerifyEmailCorrect'] = 'Указан некорректный e-mail';
$this->LANG['VerifyEmailExists'] = 'Такой e-mail уже есть на форуме';
$this->LANG['VerifyPasswordEmpty'] = 'Не указан пароль';
$this->LANG['VerifyPasswordShort'] = 'Короткий пароль';
$this->LANG['VerifyCaptchaEmpty'] = 'Не введён защитный код';
$this->LANG['VerifyCaptchaWrong'] = 'Введён неверный защитный код';

На этом с ручными изменениями всё, теперь распакуйте содержимое прикреплённого архива в корневую папку форума. Архив содержит иконки ok.gif и wrong.gif в папке templates/InvisionExBB/im, если Вы используете другие скины, Вам необходимо скопировать эти иконки в папки Ваших скинов templates/ваш_скин/im

Скачать файл: (для скачивания файла Войдите или зарегистрируйтесь)
Скачан раз: 492
 
 
electron
Отправлено: 4 августа 2009 — 12:12
Post Id



Администратор
ExBB Team


Покинул форум
Сообщений всего: 3882
Дата рег-ции: Февр. 2009  
Репутация: 338




наткнулся на ошибочку :
такой строки
CODE:
<td class="profilright"><input type="text" style="width: 130px" name="captcha" size="13" maxlength="10"></td>

нету в файле templates/ваш_скин/agreed.tpl . есть такая строка, но без "хвоста" </td>
 
 
yura3d
Отправлено: 4 августа 2009 — 12:19
Post Id


Пользователь
ExBB Team
ExBB Developer
ExBB Mods Author


Покинул форум
Сообщений всего: 3394
Дата рег-ции: Февр. 2009  
Откуда: Минск, Беларусь
Репутация: 353




electron пишет:
такой строки нету

Это у Вас такой строки нету, поскольку установлен мод обновления каптчи без перезагрузки страницы. Тем не менее, т.к. обещал полную совместимость данных модов, инструкцию поправил Хорошо

Прилагаю также скриншот с примером работы мода
Прикреплено изображение (Нажмите для увеличения)
verify_screen.png
 
 
electron
Отправлено: 4 августа 2009 — 12:40
Post Id



Администратор
ExBB Team


Покинул форум
Сообщений всего: 3882
Дата рег-ции: Февр. 2009  
Репутация: 338




спасибо!
 
 
Страниц (5): [1] 2 3 4 5 »
Сейчас эту тему просматривают: 1 (гостей: 1, зарегистрированных: 0)
« Модификации и дополнения »

> Похожие темы: Мод: Динамическая проверка регистрационной формы (на Ajax)
Темы Форум Информация о теме Обновление
A clone of ExBB FM 1.0 RC1
A clone of ExBB FM 1.0 RC1 with support for English and Italian language
Локализация Ответов: 7
Автор темы: luigi
22 марта 2012 — 17:34
Автор: altjo
Мод: Чат на форуме (Beta)
Ajax-чат для ExBB FM
Модификации и дополнения Ответов: 252
Автор темы: yura3d
26 октября 2009 — 19:17
Автор: electron
Регистрационная форма
Возможно ли редактирование регистрационной формы
Общие вопросы Ответов: 7
Автор темы: wbbletrble
7 марта 2012 — 18:19
Автор: Pauk
хочу поделиться своим маленьким дополнением
Добавил на страничку сплываюшие картинки ajax, с выпадением меню)
JavaScript Ответов: 16
Автор темы: FoXaV
16 июня 2011 — 14:23
Автор: electron
Кто в AJAX рубит хорошо?
Скрипты Ответов: 4
Автор темы: vipraskrutka
10 января 2011 — 20:04
Автор: igrok54
 



Все гости форума могут просматривать этот раздел.
Только зарегистрированные пользователи могут создавать новые темы в этом разделе.
Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
 




Яндекс.Метрика   

Powered by ExBB
ExBB FM 1.0 RC1 by TvoyWeb.ru
InvisionExBB Style converted by Markus®

[Script Execution time: 0.1628]     [ ]