我正在尝试获取vbulletin会话变量,例如:来自vbulletin的父目录中的外部页面/文件的userID和username(在magento安装中)。 我按照以下步骤建议了这个过程:
<?php
global $vbulletin;
$curdir = getcwd();
chdir($curdir.'/forum');
require_once('./global.php');
//Use $bbuserinfo.
echo('userid: ' . $vbulletin->userinfo['userid']);
echo('username: ' . $vbulletin->userinfo['username']);
chdir($curdir);
?>
然后我会像下面的代码一样回显数据
<?php echo $vbulletin->userinfo['username']; ?>
这在vbulletin目录中完美运行,但是它返回用户名的Unregistered和userid的0,它也会将我从当前的vbulletin会话中记录下来。
我已经检查过了
1.保存Cookie的路径设置为&#34;建议的设置&#39; /&#39; &#34;
2。$bbuserinfo['userid']
不起作用
3。$vbulletin->userinfo['userid']
和$vbulletin->userinfo['username']
分别返回0和未注册
4.如建议的那样,对于vbulletin版本4.2.3,代码是正确的
任何人都可以告诉我如何正确地将vbulletin安装的外部目录中当前登录用户的vbulletin会话变量(userid和username)/ [PHP] $ vbulletin-&gt; userinfo [/ PHP]数组。
注意:我遇到无法打开的流:没有这样的文件或 maoloo目录(父目录)中autoload.php错误的目录,我使用上面的代码,我怀疑这与手头的问题有关
请随时询问任何其他信息。 非常感谢:)。
答案 0 :(得分:1)
这适用于我在vBulletin目录之外的服务器上的每个路径:
$curdir = getcwd();
chdir('/absolute/path/to/your/vbulletin/');
define('DIE_QUIETLY', 1);
define('NO_REGISTER_GLOBALS', 1);
define('NOCOOKIES', 1);
define('SESSION_BYPASS', 1);
define('THIS_SCRIPT', 'my_external_script');
$globaltemplates = array();
$specialtemplates = array();
$actiontemplates = array();
$phrasegroups = array();
require_once('./includes/init.php');
$vbphrase = init_language();
require('./includes/functions_user.php');
echo $vbulletin->userinfo['userid'];
chdir($curdir);