1. Уважаемые пользователи, прежде чем ответить в теме или создать новую,
    внимательно ознакомьтесь с правилами раздела

    Кому лень работать или руки не оттуда - пользуйтесь услугами специалистов
  2. Не задавайте глупых вопросов "Посоветуйте какой-нибудь компонент.."

    Есть JED!!! Ищите там!!!

Помощь Секретный ключ и запись в cookies. Joomla 3.х

Тема в разделе "Joomla", создана пользователем bezzubtsev, 3 июл 2015.

Информация :
  • Уважаемые пользователи, прежде чем ответить в теме или создать новую, внимательно ознакомьтесь с правилами раздела
  • Не задавайте глупых вопросов "Посоветуйте какой-нибудь компонент.." Есть JED!!! Ищите там!!!
  • Аналоги ищите там же - на JED!!!
  • Новая версия? - У кого будет - тот выложит!
Модераторы: arman29, DMS, Genk0
  1. bezzubtsev

    bezzubtsev

    Регистр.:
    14 май 2015
    Сообщения:
    230
    Симпатии:
    65
    Подскажите, пожалуйста по такому вопросу.
    Есть сайт на Joomla 3.х. Как в хеадер правильно поставить код, чтобы он работал по такому принципу:
    админ входит по URL sute.ru/?key=admin
    Далее идёт проверка. Если админ зашел по такому УРЛ - выполнить код, запомнить действие в кукисы. Если без УРЛ, но есть кукис - выполнить код. Если ключа не было или не верный - ничего не делать.

    В ветке по Opencart есть код, но он вызывает белый экран у Джумлы, так как обращение к кукисам идёт не правильно.

    Код:
    <?php
    if (isset($_GET['key']))
    {$seckey = $_GET['key'];
    setcookie ("key", $_GET['key']);}
    else if
    (isset($_COOKIE['key']))
    {$seckey = $_COOKIE['key']; }
    else {$seckey = '';}
    if ($seckey != 'admin') { /* ничего не делать */ );
    exit; } else { ?>
    <?php echo 'Привет! Работает!'; ?>
    <?php}?>
    Буду признателен, если поможете адаптировать этот код для Джумлы.
     
    Последнее редактирование: 3 июл 2015
  2. domingoaz

    domingoaz Писатель

    Регистр.:
    24 июн 2015
    Сообщения:
    6
    Симпатии:
    1
    bezzubtsev нравится это.
  3. bezzubtsev

    bezzubtsev

    Регистр.:
    14 май 2015
    Сообщения:
    230
    Симпатии:
    65
    О, пардон. Ошибся, версия 3.х. Привык, что стабильные версии у них через 1.5, 2.5. и т.д.
     
  4. denverkurt

    denverkurt Denve®

    Регистр.:
    23 дек 2013
    Сообщения:
    610
    Симпатии:
    348
    с точки зрения PHP - код правильный. значит вставляете куда-то не туда
     
  5. bezzubtsev

    bezzubtsev

    Регистр.:
    14 май 2015
    Сообщения:
    230
    Симпатии:
    65
    Вставляю туда, в обычный header.php между модулями/дивами. Дело не в этом. Что-то мне подсказывает что в Joomle понятия isset($_GET и запись/проверка/вызов кукиса должно быть не так.
     
  6. denverkurt

    denverkurt Denve®

    Регистр.:
    23 дек 2013
    Сообщения:
    610
    Симпатии:
    348
    это незнание PHP вам что-то подсказывает...
    если этот код написан на чистом PHP то причем тут Joomla?
    вот если бы вы пытались вставить код написанный на фремворке опенкарта - естественно интерпритатор PHP его бы не понял

    вставьте этот код в index.php В КОРНЕ САЙТА, в самом верху. должно заработать
     
  7. bezzubtsev

    bezzubtsev

    Регистр.:
    14 май 2015
    Сообщения:
    230
    Симпатии:
    65
    Вот так без записи кукисов и без дальнейших запросов - всё работает
    Код:
    <?php
                                $seckey = JRequest::getVar(key');
                                if($seckey == 'admin'): ?>
    <?php echo 'Привет! Работает!'; ?>
    <?php endif; ?>
    
    Соответственно, без правильного указания ключа - команду не выполнит.

    Но, как только прописываю хотя бы запись полученного ключа в кукисы - на этой строке сайт запинается и больше не грузит страницу.
    Бубен с session_start(); или $session->set('key',$seckey); или JFactory::getSession(); - всё не работает :(

    Сделал своими руками работающее решение.
    Как его можно использовать:
    - закрыть от остальных нужный плагин, например вход на сайт
    - закрыть от остальных нужный блок кода, например виджет погоды или калькулятор
    - закрыть от остальных определенные пункты меню или отдельное меню
    - поставить копирайт разработчика или любой свой код (гы :)

    Что надо сделать:
    в любом системном плагине (включенном у вас в админке), где есть строка вида
    Код:
    $cookie_domain     = $conf->get('config.cookie_domain', '');
    например, это может быть плагин languagefilter.php
    после вышеуказанной строки ищите первую закрывающую скобку "}"

    Вставляете код:


    Далее, заходите в ваш шаблон, например header.php
    и в нужном месте вставляете следующий код


    Замените переменные "keys" и "admin" на свои. Ну и соответственно, окучивайте нужный вам код.
    Работать будет при запросе vashsite.ru/?keys=admin

    Преимущество этого подхода в том, что Джумла кодирует сохраняемый кукис, и при запросе раскодирует назад.
    Надеюсь, кому-то будет полезным.
     
    Последнее редактирование модератором: 4 июл 2015