<?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文件夹的名称是“mainpage”。 $ _SESSION ['用户名']为空。我需要获取当前的joomla用户名或名称..
请帮助......
谢谢,
利奥
答案 0 :(得分: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' ). ',';
?>
答案 1 :(得分:0)
我不确定为什么你甚至使用外部PHP脚本。您可以在模板中(或在您需要的任何地方)包含代码。
至于它失败的原因:在脚本中创建自己的应用程序实例。在Joomla的范围之外,就好像它是一个单独的安装。在这个单独的“Joomla”中,当然没有用户登录,因为用户登录到您的常规Joomla站点。
你到底想要达到什么目的?