Drupal - 在非drupal脚本中获取用户ID

时间:2014-01-27 18:09:00

标签: php session drupal

我正在制作一个应用程序(PHP),它将在与Drupal安装相同的服务器和同一网站上运行。我想尝试做的是获取用户的用户ID,该用户目前登录Drupal(之前我从未使用过Drupal)。我想要那个id。

有谁知道,我在哪里可以找到该ID(它是在$ _SESSION变量中的某个位置?)

我正在使用Drupal 6,PHP 5.3。

1 个答案:

答案 0 :(得分: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