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

bezzubtsev

Гуру форума
Регистрация
14 Май 2015
Сообщения
274
Реакции
89
Подскажите, пожалуйста по такому вопросу.
Есть сайт на 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.х. Привык, что стабильные версии у них через 1.5, 2.5. и т.д.
 
с точки зрения PHP - код правильный. значит вставляете куда-то не туда
 
с точки зрения PHP - код правильный. значит вставляете куда-то не туда
Вставляю туда, в обычный header.php между модулями/дивами. Дело не в этом. Что-то мне подсказывает что в Joomle понятия isset($_GET и запись/проверка/вызов кукиса должно быть не так.
 
это незнание PHP вам что-то подсказывает...
если этот код написан на чистом PHP то причем тут Joomla?
вот если бы вы пытались вставить код написанный на фремворке опенкарта - естественно интерпритатор PHP его бы не понял

вставьте этот код в index.php В КОРНЕ САЙТА, в самом верху. должно заработать
 
Вот так без записи кукисов и без дальнейших запросов - всё работает
Код:
<?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

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