votacion - Cómo obtener el usuario actual de Joomla con script PHP externo
sistema de me gusta php mysql (2)
Tengo un par de scripts PHP usados para consultas AJAX, pero quiero que puedan funcionar bajo el paraguas del sistema de autenticación de Joomla. ¿Es seguro lo siguiente? ¿Hay líneas innecesarias?
joomla-auth.php (ubicado en el mismo directorio que Joomla''s 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.");
?>
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. */
?>
Si bien no veo nada en el código que no sea seguro, lo mejor es realizar sus llamadas AJAX / JSON a un componente estándar de Joomla. Hay un buen artículo sobre cómo hacer esto aquí: http://blog.syncleon.com/2009/05/ajax-ify-your-joomla-website.html También he escrito sobre JavaScript, Joomla y solicitudes asincrónicas en mi libro http://www.packtpub.com/files/learning-joomla-1-5-extension-development-sample-chapter-8-using-javascript-effects.pdf (saltar a la página 168).
Básicamente, lo que hace es crear una vista para el resultado de su llamada AJAX, y luego crear un archivo view.xml.php (o view.json.php) en lugar de view.html.php. Cuando agrega &format=xml
al final de su URL de solicitud, extraerá de view.xml.php en lugar de view.html.php.
Seguro que funciona, necesita obtener datos de sesión para los usuarios
jimport( ''joomla.session.session'' );
$session =& JFactory::getSession();
imprima la sesión para ver lo que sale