2014-01-27 21 views
0

即時製作一個應用程序(PHP),它將在Drupal安裝的同一服務器和同一網站上運行。想想我試圖做的是獲取用戶的用戶ID,誰目前登錄在Drupal(我從來沒有與Drupal工作過)。我只想要那個ID。Drupal - 在非drupal腳本中獲取用戶標識

有誰知道,我在哪裏可以找到該ID(它是在某處$ _SESSION變量?)

進出口使用的Drupal 6,PHP 5.3。

回答

0

更新:

對不起,我想我明白你想要的東西,但後重新閱讀你的主題行,我想你想的東西有點不同。你是否想在Drupal文件夾中創建一個類似test.php的php腳本並訪問Drupal用戶ID(基於cookie/session/etc)?爲了做到這一點,你需要首先「引導」Drupal。這是我創建的一個函數,用於爲我創建的維護腳本引導Drupal(7)。

可能有一種「更好」的方式來做到這一點,但這對我來說很有用。

function bootstrapDrupal($cDomain) 
{ 
    $cDir = getcwd(); 

    //SETS DRUPAL BASE DIR 
    define('DRUPAL_ROOT', '/www/dev'); 
    //DRUPAL FAILS TO LOAD SOME FILES IF NOT AT BASE 
    chdir(DRUPAL_ROOT);            

    //ATTEMPT TO DECIDE IF PHP IS RUNNING VIA CMDLINE 
    if (isset($GLOBALS['PHP_SELF'])) 
    { 
     //WHATEVER SITE YOUR SCRIPT IS FOR. HELPS SET DB. 
     $_SERVER['HTTP_HOST'] = $cDomain;      
     //SCRIPT ADDITIONALLY NEEDS TO BE SET FOR THE REDIRECT 
     $_SERVER['SCRIPT_NAME'] = $GLOBALS['PHP_SELF']; 
     //FORWARD SLASH IS IMPORTANT 
     if (substr($_SERVER['SCRIPT_NAME'], 0, 1) != '/')  
     { 
      $_SERVER['SCRIPT_NAME'] = '/' . $_SERVER['SCRIPT_NAME']; 
     } 

     //NEEDED TO SUPRESS BOOTSTAP ACCESS ERRORS - ANY IP WILL WORK 
     $_SERVER['REMOTE_ADDR'] = '192.168.0.1'; 

    } 

    //LOADS DRUPAL BOOTSTRAP CODE 
    require_once DRUPAL_ROOT . '/includes/bootstrap.inc';   
    //EXECUTES BOOTSTRAP 
    drupal_bootstrap(DRUPAL_BOOTSTRAP_FULL);       
    //LOADS DRUPAL COMMON FUNCTIONS 
    require_once DRUPAL_ROOT . '/includes/common.inc';    

    //BACK TO STARTING DIRECTORY 
    chdir($cDir);             
} 

原來的答案:

在Drupal的,您可以通過訪問用戶ID:

$GLOBALS['user']->uid 

global $user; 
$user->uid 
+0

如果所有需要的用戶ID,你可以通過使用DRUPAL_BOOTSTRAP_SESSION而不是FULL(s大約有一段時間)。 – Brian