1
    <?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,我实际上想要'Hi“MyName”欢迎来到我们伟大的网站!'。我在 joomla 文件夹之外创建了这个文件。joomla 文件夹的名称是“主页”。$_SESSION['username'] 为空。我需要获取当前的 joomla 用户名或名称..

请帮忙...

谢谢,

狮子座

4

2 回答 2

2
<?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' ). ',';
?>
于 2014-02-08T17:01:41.193 回答
0

我不确定你为什么还要使用外部 php 脚本。您可以将代码包含在模板中(或任何您需要的地方)就可以了。

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

你到底想达到什么目的?

于 2013-04-29T14:49:18.840 回答