добрый день, я встраивал скрипт мини phpmyadmin в модекс как модуль через конструкцию header("Location:
+ заменил все вводы данных типа хоста логина и пароля на переменные из модекса.
Потом подумал,что таким образом файл может быть запущен из вне и это огромный косяк. Пытаюсь придумать как определить выполняется скрипт в админке модекса как модуль или запущен напрямую. Пробовал через isBackend() isFrontend(), insideManager() если запущен из модекса и если из вне значения одинаковы.
Вот думаю может сделать как модекс при входе в админ панель проверяет пользователя? Там видимо берется значение из сессии и сравнивается с значением из базы и мы либо получаем сообщение,что нужно авторизоваться либо доступ в админку. Подскажите пожалуйста где порыться и как определить авторизирован ли человек или может какие-то варианты получше
$_SESSION[’mgrValidated’] - менеджер
$_SESSION[’webValidated’] - веб-пользователь.
Проверяется через сессию.
Т.е.
<?
if (isset($_SESSION[’mgrValidated’])) { echo "Ты авторизован как администратор";}
?>
В принципе достаточно определить, что вызов произошел из административной части:
if (IN_MANAGER_MODE!="true") die ("<b>INCLUDE_ORDERING_ERROR</b>
Модуль работает только в административной части сайта.");
при этом имя и пароль лучше передавать через глобальные переменные:
global $database_server, $database_user, $database_password;
А определить, подключен ли менеджер, как уже выше сказано, тоже просто:
if(!isset($_SESSION[’mgrValidated’]) || !$_SESSION[’mgrValidated’]) die ("Необходимо войти как менеджер.");
Quote from: versoul at Feb 15, 2010, 09:56 AM
вот в том-то и дело,что в сессии у меня нету такого значения.
phpminiadmin.php начинает новую сессию.
Надо наоборот – создать модуль в MODx, который подключает файл, а не подключать MODx из внешнего файла:
include_once($modx->config[’base_path’].’assets/modules/и так далее’);
Quote from: versoul at Feb 17, 2010, 06:48 AM
если я include в модуль скрипт,то сыпятся ошибки,а посылка хедера это в принципе равносильно работе напрямую и вс енормально.
Вряд ли нормальна ситуация, когда любой может войти в базу. Если же требуется вводить пароль, то фактически программа не включена в MODx. Надо разбираться с Аdminer, но это занятие для фанатов… Лично мне вполне хватает phpMyAdmin, который установлен на хостинге…