2015-05-28 100 views
0

我有這樣的代碼文件夾myjoomla /的MyScript/的Joomla 3獲得用戶ID

<?php 
define('_JEXEC', 1); 
define('JPATH_BASE', $_SERVER['DOCUMENT_ROOT'].""); 
define('DS','/'); 

require_once (JPATH_BASE.DS. 'includes'.DS.'defines.php'); 
require_once (JPATH_BASE.DS.'includes'.DS.'framework.php'); 
require(JPATH_BASE.DS.'libraries/joomla/factory.php'); 

$mainframe =& JFactory::getApplication('site'); 
$mainframe->initialise(); 

jimport('joomla.session.session'); 
$session    =& JFactory::getSession(); 

$user =& JFactory::getUser(); 
echo "id:".$user->id; 

我打印JPATH_BASE,它確定。但沒有打印ID,只打印「0」。我在joomla登錄了。這在localhost中確定,但在服務器中沒有問題。

謝謝

+0

這看起來很老的代碼。你在使用Joomla 1.5嗎? – Elin

回答

0

是的,它就像舊代碼。新代碼可能看起來像下面,

<?php 
if (!defined('_JEXEC')) 
{ 
    // Initialize Joomla framework 
    define('_JEXEC', 1); 
} 

// Load system defines 
if (file_exists(dirname(__FILE__) . '/defines.php')) 
{ 
    require_once dirname(__FILE__) . '/defines.php'; 
} 
if (!defined('JPATH_BASE')) 
{ 
    define('JPATH_BASE', dirname(__FILE__)); 
} 
if (!defined('_JDEFINES')) 
{ 
    require_once JPATH_BASE . '/includes/defines.php'; 
} 

// Get the framework. 
require_once JPATH_BASE . '/includes/framework.php'; 

$app = JFactory::getApplication('site'); 
$app->initialise(); 

$user = JFactory::getUser(); 
echo "id:".$user->id; 

注意:測試您的代碼在本地和現場它是爲我工作。但是不確定爲什麼它不適用於您的現場環境。但是你的代碼確實很老。

+0

感謝Gunjan,你的代碼是好的,我的代碼是好的,問題是使用「www」訪問joomla,並使用「www」訪問不使用......我有兩個會話diferents,一個爲「www.mysite.com」y其他會話爲「mysite.com」 – maudichili

+0

啊,你是對的。很高興你已經修好了。 –