Здравствуйте. Всем известно что такое defined('_JEXEC') or die('Restricted access'); - запрет прямого доступа. Т.е. если обратиться к файлу, набрав адрес в браузере мы увидим, что нам туда нельзя. Joomla же успешно работает с этим файлом. Но вот никак не могу понять особенность использования defined('_JEXEC'). К примеру у меня есть модуль калькулятора. В tmpl/default.php модуля у меня форма для расчета. Посредством ajax запроса я посылаю данные в доп. файл res.php, в котором произвожу расчет и выдаю готовый результат назад в default.php. Если я добавлю в файл res.php строку defined('_JEXEC') or die('Restricted access'); то расчет не будет произведен, так как я получу Restricted access Почему меня не пускает? Ведь я обращаюсь к данному файлу из default.php модуля, а не напрямую. Примерный запрос: Код (html): function pognali() { var hours = jQuery('#hours').val(); var gruzchik = jQuery('input[name=gruzchik]:checked').val(); var kol_gruzchik = jQuery('#kol_gruzchik').val(); jQuery.ajax({ type: "POST", url: "modules/mod_month/res.php", data: {'hours':hours, 'gruzchik':gruzchik, 'kol_gruzchik':kol_gruzchik}, success: function(html) { jQuery("#ajax").empty(); jQuery("#ajax").append(html); } }); } Зависит ли это от способа обращения к файлу? В моем случае: Код (html): url: "modules/mod_month/res.php",
потому и не пускает: у тебя идёт прямое обращение к этому файлу, а не через index.php в котором как раз и делается это определение проще говоря ты AJAX'ом обращаешься к этому файлу по адресу сайта и по пути на сервере если не получится (а скорее всего и не получится) попробуй обратиться, указав или GET или POST тогда просто в кокисы запихни какую нибудь переменную, а в своём файле её прочитай, при отсутсвии оной - ни каких счётов не делай