Техническая поддержка сервиса Quadro.Boards

Объявление

Новости сервиса

О форуме

Quadro.Support – это форум технической поддержки различных проектов и сервисов Quadro.Systems LLC, на котором грамотные технические специалисты всегда смогут помочь вам в решении проблем, или же подсказать ответы на самые сложные вопросы. Так же на форуме собрана обширная база знаний по различным аспектам наших сервисов. Не забывайте пользоваться поиском ;)

Информация о пользователе

Привет, Гость! Войдите или зарегистрируйтесь.


Вы здесь » Техническая поддержка сервиса Quadro.Boards » Скрипты и дополнения » Доступ в форум по паролю


Доступ в форум по паролю

Сообщений 21 страница 40 из 40

1

Раз уж этот скрипт с периодичностью раз в 1-2 недели спрашивают, вывешу его здесь.

Скрипт позволяет установить пароль на форум (скрипт будет спрашивать пароль при переходе в запароленный форум или тему данного форума).

<script>
var forumlink = 'http://sadhaka.rusff.ru';
var forbidden = 3;
var entry = 'пароль';

function createCookie(name,value,days) {
    if (days) {
        var date = new Date();
        date.setTime(date.getTime()+(days*24*60*60*1000));
        var expires = "; expires="+date.toGMTString();
    }
    else var expires = "";
    document.cookie = name+"="+value+expires+"; path=/";
}
function readCookie(name) {
    var nameEQ = name + "=";
    var ca = document.cookie.split(';');
    for(var i=0;i < ca.length;i++) {
        var c = ca[i];
        while (c.charAt(0)==' ') c = c.substring(1,c.length);
        if (c.indexOf(nameEQ) == 0) return c.substring(nameEQ.length,c.length);
    }
    return null;
}
function pass() {
            if (readCookie('forumpass') == entry ) return true;
            else if (prompt('Администратор установил пароль на этот форум', '') == entry) {
                alert('Пароль принят. Нажмите "ОК" для редиректа');
                createCookie('forumpass', entry, 1);
                location.href = loc;
            }
            else {
                alert('Введенный пароль неверен');
                location.href = forumlink;
            }
        }
        if (location.href.indexOf("viewforum.php?id=" + forbidden) != -1 || (location.href.indexOf("viewtopic.php") != -1  && FORUM.topic.forum_id == forbidden) ) {
            var loc = location.href;
            pass (loc);
}

</script>

Советую отредактировать скрипт, как Вам надо, положить в файл с расширением js, залить в админку и подключить так:

<script type="text/javascript" src="ссылка_на_скрипт"></script>

потому что никто не мешает посмотреть пароль в исходном коде, а так - это будет не столь очевидно.

Настройки:

var forumlink = 'http://sadhaka.rusff.ru'; //Куда редиректить, если пароль неверный
var forbidden = 3; //ID закрытого форума
var entry = 'пароль'; //пароль


Как узнать id форума - можно почитать тут Иконки сообщений, разделов, тем.
Более интересный вариант Доступ к Теме-Форуму по Коду в Статусе


Если надо сразу много форумов запаролить

<script>
    var forumlink = 'http://sadhaka.rusff.ru';
    var forbidden = {
        //id форума : "пароль"
        3: "entry",
        1: "done"
    }

    function createCookie(name,value,days) {
        if (days) {
            var date = new Date();
            date.setTime(date.getTime()+(days*24*60*60*1000));
            var expires = "; expires="+date.toGMTString();
        }
        else var expires = "";
        document.cookie = name+"="+value+expires+"; path=/";
    }
    function readCookie(name) {
        var nameEQ = name + "=";
        var ca = document.cookie.split(';');
        for(var i=0;i < ca.length;i++) {
            var c = ca[i];
            while (c.charAt(0)==' ') c = c.substring(1,c.length);
            if (c.indexOf(nameEQ) == 0) return c.substring(nameEQ.length,c.length);
        }
        return null;
    }
    function getUrlDate() {
        var param = {};
        var getURL = location.href.replace(/[?&]+([^=&]+)=([^&]*)/gi, function(t,key,value) {
            param[key] = value;
        });
    return param;
    }
    function pass(url, id) {
                if (readCookie('forumpass'+id) == forbidden[id] ) return true;
                else { $("body").css("display","none");
                     if (prompt('Администратор установил пароль на этот форум', '') == forbidden[id]) {
                    alert('Пароль принят. Нажмите "ОК" для редиректа');
                    $("body").css("display","block");
                    createCookie('forumpass'+id, forbidden[id], 1);
                    location.href = url;
                }
                else {
                    alert('Введенный пароль неверен');
                    location.href = forumlink;
                }
            }}
    if (location.href.indexOf("viewforum.php") != -1) {
        var fID = getUrlDate()["id"]; 
    }
    else if (location.href.indexOf("viewtopic.php") != -1) {
        var fID = FORUM.topic.forum_id;
    }
    if (fID in forbidden) {
        var loc = location.href;
        pass (loc, fID);
    }
    </script>

Настройки чуть меняются

var forumlink = 'http://sadhaka.rusff.ru';
    var forbidden = {
        //id форума : "пароль"
        3: "entry",
        1: "done" //после последнего запятая не нужна
    }


var forumlink - ссылка для редиректа (1 раз)
var forbidden - заполняете согласно схеме id форума : "пароль"

Теги: доступ по паролю, пароль на форум

+1

21

Deff
Прошу прощения... У меня ещё один вопрос. Какую цифру нужно изменить в скрипте, чтобы поменять действие куки с одного часа на другое кол-во часов?

0

22

Какую цифру нужно изменить в скрипте, чтобы поменять действие куки с одного часа на другое кол-во часов?

function pass(id) {
                if (getcOOkie('forumpass'+id) == forbidden[id] ) return true;
                $("body").hide();
                     if (prompt('Администратор установил пароль на этот форум', '') == forbidden[id]) {
                    alert('Пароль принят. Нажмите "ОК" для редиректа');
                    setcOOkie('forumpass'+id, forbidden[id], 1);
                    $("body").show(); return true;
                }

Отредактировано Deff (25.01.2014 16:24:18)

+1

23

Валери Рэйн
Если что, в скрипте в первом посте исправила ошибку.

0

24

sadhaka, а можно как-то изменить скрипт чтобы он запрашивал ключевую фразу, а не пароль?

0

25

Igan Spengler
а чем ключевая фраза отличается от пароля?

0

26

sadhaka написал(а):

Igan Spengler
а чем ключевая фраза отличается от пароля?

sadhaka, пароль можно взломать так как он в основном состоит из цифр. Пример: 1111
А ключевая фраза состоит в основном из нескольких слов. Пример: неизвестный призрак

0

27

Igan Spengler
вписывайте вместо слова "пароль" хоть всего "Евгения Онегина" - ничто не мешает.

0

28

sadhaka написал(а):

Igan Spengler
вписывайте вместо слова "пароль" хоть всего "Евгения Онегина" - ничто не мешает.

А можно создать отдельный скрипт?

0

29

Igan Spengler
зачем?! чем Вам этот-то не нравится?

0

30

sadhaka написал(а):

Igan Spengler
зачем?! чем Вам этот-то не нравится?

Слишком сложный. Никогда не знаешь куда его ставить, что и где менять на своё.

0

31

Igan Spengler
Все же написано в первом посте - что менять, куда ставить. А меньше он уже не будет ну никак.

0

32

sadhaka написал(а):

Igan Spengler
Все же написано в первом посте - что менять, куда ставить. А меньше он уже не будет ну никак.

А можно всё написанное в первом посте выделить каким-нибудь цветом? А то я запутаюсь.

0

33

Igan Spengler
Там все настройки вынесены в начале скрипта - у меня ощущение, что Вы этого до сих пор не сделали.

0

34

У меня этот скрипт работает только для однозначных и двухзначных id. Для трёхзначных не работает. Что можно исправить?

0

35

Джон Армстронг
трехзначные, эмн... айди форумов?!
но вообще скрипту все равно на то, сколько цифр в айди форума, никаких ограничений нет.

0

36

Ну я это заметил) Пример:
{
    //id форума : "пароль"
      2: "скрипка",
         23: "лягушка",
         21: "море",
    12: "осень",
    14: "иллюзия",
    16: "небосвод",
    15: "тепло",
    154: "пароль"
        }
Так вот последнее не срабатывает. Всё остальное работает

0

37

Джон Армстронг
ссылку на форум в студию

0

38

http://sphoenix.rusff.ru- если поможет)
Так. Я ошибся с определением. Не работает для id топика.

Отредактировано Джон Армстронг (01.10.2014 16:28:01)

0

39

Джон Армстронг
так для айди топика и не будет работать, он для форумов только

+1

40

А переделать под id топика можно?)

Всё. уже переделал. Спасибо!

Отредактировано Джон Армстронг (01.10.2014 16:41:53)

0


Вы здесь » Техническая поддержка сервиса Quadro.Boards » Скрипты и дополнения » Доступ в форум по паролю


Рейтинг форумов | Создать форум бесплатно © 2007–2016 «QuadroSystems» LLC