2013-04-29 131 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'). ','; 
?>