我正在制作一个应用程序(PHP),它将在与Drupal安装相同的服务器和同一网站上运行。我想尝试做的是获取用户的用户ID,该用户目前登录Drupal(之前我从未使用过Drupal)。我想要那个id。
有谁知道,我在哪里可以找到该ID(它是在$ _SESSION变量中的某个位置?)
我正在使用Drupal 6,PHP 5.3。
答案 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