2013-04-29 91 views
0
<?php 
define('_JEXEC', 1); 
define('JPATH_BASE', realpath(dirname(__FILE__).'/mainpage')); //mainpage is my joomla folder. 

define('DS', DIRECTORY_SEPARATOR); 

require_once (JPATH_BASE .DS.'includes'.DS.'defines.php'); 
require_once (JPATH_BASE .DS.'includes'.DS.'framework.php'); 
$mainframe = JFactory::getApplication('site'); 
$mainframe->initialise(); 

$user =& JFactory::getUser(); 
    $_SESSION['username'] = $user->get('name'); 
    if ($user->get('guest') == 1) {echo"blabla";} else { echo "Hi ".$_SESSION['username']."! Welcome to our great website!";} 
?> 

这将导致blabla在浏览器中,我实际上希望有“嗨”MyName“欢迎来到我们伟大的网站!”。我在joomla文件夹外创建这个文件.. joomla文件夹的名字是“mainpage”。 $ _SESSION ['username']是空的。我需要获得当前的Joomla用户名或姓名..使用外部php脚本获取joomla当前登录用户的用户名

请帮助...

感谢,

利奥

+0

我没有用的Joomla,但尝试添加'在session_start();'在脚本的顶部(?之后 MatthewMcGovern 2013-04-29 13:12:50

回答

0

我不知道为什么你甚至可以使用一个外部PHP脚本。您可以将代码包含在您的模板(或任何需要它的地方)中。

至于它失败的原因:你在你的脚本中创建你自己的应用程序实例。超出Joomla的范围,就好像它是一个单独的安装。在这个单独的“Joomla”中,当用户登录到您的常规Joomla网站时,当然没有用户登录。

你究竟想达到什么目的?

1
<?php 

    //defined('_JEXEC') or die; 
    define('_JEXEC', 1); 
    define('JPATH_BASE', realpath(dirname(__FILE__).'/')); //mainpage is my joomla folder. 

    define('DS', DIRECTORY_SEPARATOR); 

    require_once (JPATH_BASE .DS.'includes'.DS.'defines.php'); 
    require_once (JPATH_BASE .DS.'includes'.DS.'framework.php'); 
    $mainframe = JFactory::getApplication('site'); 
    $mainframe->initialise(); 
    $session =& JFactory::getUser(); 
    echo 'Welcome : ' . $session->get('name', 'empty'). ','; 
?>