IPB - 在 IPB 根目录之外访问成员数据 PHP


IPB - Access member data PHP outside IPB root

我有IPB,我有一个PHP应用程序,它在论坛根之外,也在另一个子域上。
在应用程序中,我需要访问成员数据,例如。帖子计数、电子邮件等。

我有最新的 IPB 版本和 PHP 5.6
我在谷歌上搜索了很多解决方案,最后我找到了这个:从主网站外部访问 IPB 类
但是,它根本没有起作用。没有错误,只是重定向到主论坛URL。

有没有人有过 IPB 类和/或 API 的经验?有人可以帮助我达到目标吗?
解决方案可能只是一行代码。

编辑:我找到了解决方法,请在下面查看我的答案。
但是,我仍然对"更好"的解决方案感兴趣。

经过一番研究,我配置了IPB重定向,因为板网址与当前网址/子域不匹配。(我的情况)
所以。。。有解决方法,不是很好,但至少有效,并且是单行解决方案:

<?PHP
$_SERVER['HTTP_HOST_R'] = $_SERVER['HTTP_HOST']; // Keep original info in another index.
$_SERVER['HTTP_HOST'] = "www.your-ipb-forum.com"; // Work-around
$forumPath = '../forum'; //FORUM FOLDER
define( 'IPS_ENFORCE_ACCESS', TRUE ); // Important so it does not redirect to forums
define( 'IPB_THIS_SCRIPT', 'public' );
require_once( $forumPath.'/initdata.php' );
require_once( IPS_ROOT_PATH . 'sources/base/ipsRegistry.php' );
require_once( IPS_ROOT_PATH . 'sources/base/ipsController.php' );
$ipbRegistry    = ipsRegistry::instance();
$ipbRegistry->init();
// Init done
$member = IPSMember::load($memberName, 'all', 'username');
print_r($member); // For demo purposes only

第三条线是我们在IPB上作弊的解决方法。
第二行是将 $_SERVER['HTTP_HOST'] 数据"移动"到 $_SERVER['HTTP_HOST_R'],因此,如果您在应用程序中需要当前(真实)URL,则可以改用此变量HTTP_HOST因为更改了一个变量。(解决方法需要)。