Как получить текущего пользователя Joomla с помощью внешнего скрипта PHP - PullRequest
5 голосов
/ 15 марта 2010

У меня есть пара 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. */
?>

Ответы [ 2 ]

2 голосов
/ 15 марта 2010

Хотя я не вижу в коде ничего небезопасного, лучше всего сделать ваши 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.

0 голосов
/ 23 октября 2012

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

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

распечатайте сессию, чтобы увидеть, что получится

...