Регистрация    Забыли пароль?        Правила форума    FAQ (читать перед созданием новой темы)
Имя   Пароль  запомнить
  
Просмотр темы
Вернуться на сайт: PHP-Fusion SF Russian Support Site

Форум поддержки PHP-Fusion SF | PHP-Fusion SF - Моды/Плагины | Моды/Mods
# 1 Тема: Ajax login panel by me =)
pozitiv
SF Team

Avatar пользователя

паZитифф

SF Support Team

Почетный SF

Сообщений: 1676
Откуда: Киев
Зарегистрирован: 18 Ноября 2007, 18:49:13
Сказали спасибо 148 раз
Статус: offline
ICQ статус 3902393
Опубликовано 09 Марта 2010, 17:11:32
Ajax login panel


Вобщем опять захотелось мне побаловатся с аяксом, да и припомнить азы=)

Решил ковырять юзерпанель, т.е. вход на сайт без перезагрузки страницы, и вроде получилось))

Краткое описание:
- выскакивают алерты если не ввели логин или пароль;
- запрос в БД с введенными логином и паролем, в случае неправильного ввода выскакивает алерт если логин или пароль введен неправильно;
- если все введено верно - происходит обновление панели со всеми вытикающими(админка, лс и т.д..).

ВАЖНО!
В случае удачного входа на сайт обновляется только панель, но на сайте вы продолжаете висеть как гость. Чтобы сайт загрузился как для пользователя, а не для гостя надо обновить страницу или перейти на другую страницу...
НО! В настройках можно включить автоматическое обновление страницы в случае удачного входа на сайт. После обновления вы окажетесь на тойже странице, с которой был осуществлен вход)) Выключено по дефолту!


Еще важно!
Для корректной работы панели на форуме, на форуме надо подгружать subheader.php с корневой папки, а не с папки forum/. Просто там тоже есть форма входа и тогда они начинают конфликтовать, а точнее прийдется вводит логин и пароль 2 раза...



Установка:
1. Залить все из архива в корневой каталог заменяя все файлы...
2. В используемом subheader.php добавить
<script type='text/javascript' src='".INCLUDES."prototype.js'></script>
<script type='text/javascript'>
ajax = '".INCLUDES."ajax/';
</script>


3. В файл jscript.js который лежит в папке includes добавить

function log() {

var url = ajax+'login.php';

var user_name = $F('user_name');
var user_pass = $F('user_pass');
var pars = 'user_name='+user_name+'&user_pass='+user_pass;

if (user_name == "") {
alert('Вы не ввели логин!')
}
else
{
if (user_pass == "") {
alert('Вы не ввели пароль!')
}
else
{


new Ajax.Updater('logins', url,
{
method: 'post',
parameters: pars,
evalScripts: true
});
}
}
}




вот демо http://demo.ho.ua/
логин demo
пароль demodemo

для 7 будет если кто-то адаптирует))


Все делалось и тестировалось на последней чистой версии выложенной на этом сайте...
Прикрепленные файлы
Для просмотра вложения зарегистрируйтесь


[Изменил(а) pozitiv, 09 Марта 2010, 23:16:40]

--------------------
wmz - Z226856101527
wmr - R513979829437

Все вопросы задавать на форуме. На вопросы заданные в приват или асю неотвечаю!
^ наверх ^ 3902393 http://nekto.me
# 2  
pozitiv
SF Team

Avatar пользователя

паZитифф

SF Support Team

Почетный SF

Сообщений: 1676
Откуда: Киев
Зарегистрирован: 18 Ноября 2007, 18:49:13
Сказали спасибо 148 раз
Статус: offline
ICQ статус 3902393
Опубликовано 09 Марта 2010, 18:26:17
По желанию можно сделать чтобы обновлялись отдельные панели сайта, например чат или "Сейчас на сайте"... Т.е. они будут обновлятся во время логина...


--------------------
wmz - Z226856101527
wmr - R513979829437

Все вопросы задавать на форуме. На вопросы заданные в приват или асю неотвечаю!
^ наверх ^ 3902393 http://nekto.me
# 3  
jikaka
Пользователь

Avatar пользователя

jikaka

Почетный SF

Сообщений: 1112
Откуда: Питер
Зарегистрирован: 01 Октября 2008, 08:39:58
Сказали спасибо 106 раз
Статус: offline
ICQ статус 196346743
Опубликовано 09 Марта 2010, 22:13:19
сделай демо на каком-нибудь поддомене...
для 7-ки такое будет?


--------------------
жить хорошо! а хорошо жить - еще лучше!
www.rusfusion.ru - официальная поддержка
^ наверх ^ 196346743 www.jikaka.ru
# 4  
pozitiv
SF Team

Avatar пользователя

паZитифф

SF Support Team

Почетный SF

Сообщений: 1676
Откуда: Киев
Зарегистрирован: 18 Ноября 2007, 18:49:13
Сказали спасибо 148 раз
Статус: offline
ICQ статус 3902393
Опубликовано 09 Марта 2010, 23:16:19
ладно, вот демо http://demo.ho.ua/
логин demo
пароль demodemo

для 7 будет если кто-то адаптирует))



На демо-сайте используется способ из 2-го поста с аякс обновлением панелей...


[Изменил(а) pozitiv, 09 Марта 2010, 23:18:24]

--------------------
wmz - Z226856101527
wmr - R513979829437

Все вопросы задавать на форуме. На вопросы заданные в приват или асю неотвечаю!
^ наверх ^ 3902393 http://nekto.me
# 5  
rusbody
Пользователь

Avatar пользователя



Любитель Fusion

Сообщений: 282
Зарегистрирован: 28 Января 2008, 00:45:36
Сказали спасибо 7 раз
Статус: offline
Опубликовано 10 Марта 2010, 00:13:31
pozitiv красава!!!


--------------------
Мой сайт на вашем движке бодибилдинг видео
^ наверх ^ rusbody.com
# 6  
jikaka
Пользователь

Avatar пользователя

jikaka

Почетный SF

Сообщений: 1112
Откуда: Питер
Зарегистрирован: 01 Октября 2008, 08:39:58
Сказали спасибо 106 раз
Статус: offline
ICQ статус 196346743
Опубликовано 10 Марта 2010, 07:55:06
во!
классная штука...


--------------------
жить хорошо! а хорошо жить - еще лучше!
www.rusfusion.ru - официальная поддержка
^ наверх ^ 196346743 www.jikaka.ru
# 7  
Psc
SF Team

Avatar пользователя

Psc

SF Support Team

Почетный SF

Сообщений: 2515
Откуда: As is
Зарегистрирован: 10 Ноября 2007, 13:15:07
Сказали спасибо 353 раз
Статус: offline
Опубликовано 10 Марта 2010, 16:03:30
Без скриптов не пашет.
Под семерку если переносить то только под jQuery, почему было сразу с ним не сделать?


--------------------
Retired
^ наверх ^
# 8  
pozitiv
SF Team

Avatar пользователя

паZитифф

SF Support Team

Почетный SF

Сообщений: 1676
Откуда: Киев
Зарегистрирован: 18 Ноября 2007, 18:49:13
Сказали спасибо 148 раз
Статус: offline
ICQ статус 3902393
Опубликовано 10 Марта 2010, 17:07:05
Psc написал:
Без скриптов не пашет.
Под семерку если переносить то только под jQuery, почему было сразу с ним не сделать?

Ясен пень что без скриптов непашет, ведь функции написаны на жаваскриптах)) На джквери неписал, т.к. незнаю его)


--------------------
wmz - Z226856101527
wmr - R513979829437

Все вопросы задавать на форуме. На вопросы заданные в приват или асю неотвечаю!
^ наверх ^ 3902393 http://nekto.me
# 9  
yury
Пользователь

Avatar пользователя

Магистр Дизайна и Верстки

Почетный SF

Сообщений: 1201
Зарегистрирован: 11 Января 2008, 15:57:19
Сказали спасибо 37 раз
Статус: offline
ICQ статус 371635405
Опубликовано 10 Марта 2010, 20:23:38
да, было бы хорошо, если на квери. а без явы всеж надо какой то альтернативный код.

например вконтакте есть всплывающие окна как на яве, а если явы нет, то просто открываются без явы


--------------------
Нужен сайт или красивый оригинальный дизайн?
Только лучший и оригинальный дизайн для php-fusion 6, 7, SF!
www.artcell.ru-правильный выбор!!!
^ наверх ^ 371635405 www.artcell.ru
# 10  
pozitiv
SF Team

Avatar пользователя

паZитифф

SF Support Team

Почетный SF

Сообщений: 1676
Откуда: Киев
Зарегистрирован: 18 Ноября 2007, 18:49:13
Сказали спасибо 148 раз
Статус: offline
ICQ статус 3902393
Опубликовано 10 Марта 2010, 20:45:09
Это было написано за пару часов от нефиг делать)) Если посидеть поковырятся, то можно что-нить придумать)


--------------------
wmz - Z226856101527
wmr - R513979829437

Все вопросы задавать на форуме. На вопросы заданные в приват или асю неотвечаю!
^ наверх ^ 3902393 http://nekto.me
# 11  
Psc
SF Team

Avatar пользователя

Psc

SF Support Team

Почетный SF

Сообщений: 2515
Откуда: As is
Зарегистрирован: 10 Ноября 2007, 13:15:07
Сказали спасибо 353 раз
Статус: offline
Опубликовано 11 Марта 2010, 01:12:29
Нуууу доделывай, видишь народу полюбилось. Это требует доделывания же? smiley


--------------------
Retired
^ наверх ^
# 12  
jikaka
Пользователь

Avatar пользователя

jikaka

Почетный SF

Сообщений: 1112
Откуда: Питер
Зарегистрирован: 01 Октября 2008, 08:39:58
Сказали спасибо 106 раз
Статус: offline
ICQ статус 196346743
Опубликовано 11 Марта 2010, 08:01:22
требует...


--------------------
жить хорошо! а хорошо жить - еще лучше!
www.rusfusion.ru - официальная поддержка
^ наверх ^ 196346743 www.jikaka.ru
# 13  
pozitiv
SF Team

Avatar пользователя

паZитифф

SF Support Team

Почетный SF

Сообщений: 1676
Откуда: Киев
Зарегистрирован: 18 Ноября 2007, 18:49:13
Сказали спасибо 148 раз
Статус: offline
ICQ статус 3902393
Опубликовано 11 Марта 2010, 18:21:11
Ну чтож...будем посмотреть)


--------------------
wmz - Z226856101527
wmr - R513979829437

Все вопросы задавать на форуме. На вопросы заданные в приват или асю неотвечаю!
^ наверх ^ 3902393 http://nekto.me
# 14  
pozitiv
SF Team

Avatar пользователя

паZитифф

SF Support Team

Почетный SF

Сообщений: 1676
Откуда: Киев
Зарегистрирован: 18 Ноября 2007, 18:49:13
Сказали спасибо 148 раз
Статус: offline
ICQ статус 3902393
Опубликовано 12 Марта 2010, 18:50:44
Нашел временное решение при отключенном js у пользователя

в файле user_info_panel.php строку
<input type='button' onclick='log();' name='login' value='".$locale['on126']."' class='button'>
заменить на

<div id='noscr'></div>
<script language='javascript'>
document.getElementById('noscr').innerHTML = \"<input type='button' onclick='log();' name='login' value='".$locale['on126']."' class='button'>\";
</script>
<noscript>
<input type='submit' name='login' value='".$locale['on126']."' class='button'>
</noscript>



тоже самое сделать с файлом login.php



ну и если кому интересно - упрощенная функция log

function log() {

var url = ajax+'login.php';

var user_name = $F('user_name');
var user_pass = $F('user_pass');
var pars = 'user_name='+user_name+'&user_pass='+user_pass;

if (user_name == "" || user_pass == "") {
alert('Вы не ввели логин или пароль!')
}
else
{
new Ajax.Updater('logins', url,
{
method: 'post',
parameters: pars,
evalScripts: true
});
}
}






ЗЫ: на демо сайте не обновлял


[Изменил(а) pozitiv, 12 Марта 2010, 18:53:57]

--------------------
wmz - Z226856101527
wmr - R513979829437

Все вопросы задавать на форуме. На вопросы заданные в приват или асю неотвечаю!
^ наверх ^ 3902393 http://nekto.me
# 15  
pozitiv
SF Team

Avatar пользователя

паZитифф

SF Support Team

Почетный SF

Сообщений: 1676
Откуда: Киев
Зарегистрирован: 18 Ноября 2007, 18:49:13
Сказали спасибо 148 раз
Статус: offline
ICQ статус 3902393
Опубликовано 12 Марта 2010, 19:18:00
Способ второй, лучше первого..

функцию function log() {....} заменить на

function login(event) {
var form = Event.element(event);
var url = ajax+'login.php';
var user_name = $F('user_name');
var user_pass = $F('user_pass');
var pars = 'user_name='+user_name+'&user_pass='+user_pass;

if (user_name == "" || user_pass == "") {
alert('Вы не ввели логин или пароль!')
}
else
{
new Ajax.Updater('logins', url,
{
method: 'post',
parameters: pars,
evalScripts: true
});
}
Event.stop(event);
return false;
}




в файле user_info_panel.php строку
<input type='button' onclick='log();' name='login' value='".$locale['on126']."' class='button'>
заменить на

<input type='submit' name='login' value='".$locale['on126']."' class='button'>
<script type='text/javascript'>
$('logform').observe('submit', login);
</script>

и строку
<form align='center' name='loginform' method='post' action='".FUSION_SELF."'>

заменить на

<form id='logform' align='center' name='loginform' method='post' action='".FUSION_SELF."'>
или можно добавить выделенное...

тоже самое сделать с файлом login.php


опять таки на демо сайте это не обновлено..


--------------------
wmz - Z226856101527
wmr - R513979829437

Все вопросы задавать на форуме. На вопросы заданные в приват или асю неотвечаю!
^ наверх ^ 3902393 http://nekto.me
# 16  
jikaka
Пользователь

Avatar пользователя

jikaka

Почетный SF

Сообщений: 1112
Откуда: Питер
Зарегистрирован: 01 Октября 2008, 08:39:58
Сказали спасибо 106 раз
Статус: offline
ICQ статус 196346743
Опубликовано 12 Марта 2010, 22:22:29
ты лучше снова архив выложи, а то людей запутаешь...


--------------------
жить хорошо! а хорошо жить - еще лучше!
www.rusfusion.ru - официальная поддержка
^ наверх ^ 196346743 www.jikaka.ru
# 17  
Psc
SF Team

Avatar пользователя

Psc

SF Support Team

Почетный SF

Сообщений: 2515
Откуда: As is
Зарегистрирован: 10 Ноября 2007, 13:15:07
Сказали спасибо 353 раз
Статус: offline
Опубликовано 14 Марта 2010, 12:34:16
Изврат с носкрптом. Что мешает делать submit и отклонять отправку на javascript если он есть?

Вот как я сделал
<input onclick="ash_send();return false;" name="post_shout" value="Сказать" class="button" type="submit">


но это код для чатика на аяксике, потому адаптируй под себя.


--------------------
Retired
^ наверх ^
# 18  
pozitiv
SF Team

Avatar пользователя

паZитифф

SF Support Team

Почетный SF

Сообщений: 1676
Откуда: Киев
Зарегистрирован: 18 Ноября 2007, 18:49:13
Сказали спасибо 148 раз
Статус: offline
ICQ статус 3902393
Опубликовано 14 Марта 2010, 13:40:15
jikaka написал:
ты лучше снова архив выложи, а то людей запутаешь...


Так я выложил второй вариант где все уже учтено))


--------------------
wmz - Z226856101527
wmr - R513979829437

Все вопросы задавать на форуме. На вопросы заданные в приват или асю неотвечаю!
^ наверх ^ 3902393 http://nekto.me
# 19  
dicoz
Пользователь

Avatar пользователя

dicoz

Любитель Fusion

Сообщений: 215
Откуда: Украина
Зарегистрирован: 19 Октября 2008, 21:16:55
Сказали спасибо 5 раз
Статус: offline
ICQ статус 248570740
Опубликовано 04 Июня 2010, 17:09:20
Даешь для 7рки и под JQUERY. А я в свою очередь даю донат в размере 3$ на пиво, может еще кто даст и будет тебе еще и на чипсы smiley


--------------------
Осваиваю 3тий палец в изучении движка, нечего их всего 5 smiley
<hr>
Чем больше я узнаю, тем больше понимаю что нечего не знаю (с)
^ наверх ^ 248570740
# 20  
Psc
SF Team

Avatar пользователя

Psc

SF Support Team

Почетный SF

Сообщений: 2515
Откуда: As is
Зарегистрирован: 10 Ноября 2007, 13:15:07
Сказали спасибо 353 раз
Статус: offline
Опубликовано 04 Июня 2010, 18:28:27
Был уже где то, просто я как обычно заигнорил его. Короче поищите.


--------------------
Retired
^ наверх ^
Перейти на форум:


94,943,308 уникальных посетителей
сейчас: 19 Апреля 2024, 21:21:22
Генерация страницы: 0.55 сек.