Как получить текущего пользователя Joomla с внешним скриптом PHP

У меня есть пара PHP-скриптов, используемых для запросов AJAX, но я хочу, чтобы они могли работать под управлением системы аутентификации Joomla. Является ли следующее безопасным? Есть ли лишние строки?

joomla-auth.php (находится в том же каталоге, что и index.php Joomla):

<?php define( '_JEXEC', 1 ); define('JPATH_BASE', dirname(__FILE__)); define( 'DS', DIRECTORY_SEPARATOR ); require_once ( JPATH_BASE .DS.'includes'.DS.'defines.php' ); require_once ( JPATH_BASE .DS.'includes'.DS.'framework.php' ); /* Create the Application */ $mainframe =& JFactory::getApplication('site'); /* Make sure we are logged in at all. */ if (JFactory::getUser()->id == 0) die("Access denied: login required."); ?> 

test.php:

 <?php include 'joomla-auth.php'; echo 'Logged in as "' . JFactory::getUser()->username . '"'; /* We then proceed to access things only the user of that name has access to. */ ?> 

Solutions Collecting From Web of "Как получить текущего пользователя Joomla с внешним скриптом PHP"

Хотя я не вижу ничего в коде, который небезопасен, лучше всего сделать ваши вызовы AJAX / JSON стандартным компонентом Joomla. Есть хорошая статья о том, как это сделать здесь: http://blog.syncleon.com/2009/05/ajax-ify-your-joomla-website.html Я также написал о JavaScript, Joomla и асинхронных запросах в мою книгу http://www.packtpub.com/files/learning-joomla-1-5-extension-development-sample-chapter-8-using-javascript-effects.pdf (перейдите на стр. 168).

По существу, вы создаете представление для вывода вашего вызова AJAX, а затем создаете файл view.xml.php (или view.json.php) вместо view.html.php. Когда вы добавите &format=xml в конец URL-адреса вашего запроса, он вытащит из view.xml.php вместо view.html.php.

обязательно работает, вам нужно получить данные сеанса для пользователей

 jimport( 'joomla.session.session' ); $session =& JFactory::getSession(); 

распечатайте сеанс, чтобы узнать, что выйдет