php - 如何使用外部 PHP 脚本获取当前 Joomla 用户

标签 php authentication joomla external-script

我有几个用于 AJAX 查询的 PHP 脚本,但我希望它们能够在 Joomla 的身份验证系统的保护下运行。以下安全吗?有没有多余的线?

joomla-auth.php(与 Joomla 的 index.php 位于同一目录):

<?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.");

?>

测试.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. */
?>

最佳答案

虽然我在代码中没有看到任何不安全的地方,但最好让您的 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 ,然后创建一个 view.xml.php(或 view.json.php)文件而不是 view.html.php。当您将 &format=xml 添加到请求 URL 的末尾时,它将从 view.xml.php 而不是 view.html.php 中提取。

关于php - 如何使用外部 PHP 脚本获取当前 Joomla 用户,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2445549/

相关文章:

c# - 如何(优雅地)确定 C# winforms 应用程序中是否需要代理身份验证

database - joomla #__associations 表

PHP、Regex 仅在两个保留字符之间替换用户输入中的换行符

php - 联合查询或更好的选择

php - wordpress 菜单表现得很奇怪

php - 不使用数据库的 Lumen HTTP 基本身份验证

java - 服务器进行客户端身份验证

mysql - Joomla 1.5 和 VirtueMart : can bad performance be solved with upgrade?

php - "Fatal error: Cannot redeclare class"...但是类没有声明

php - 将时间/日期从 XML 文件转换为 MYSQL 格式