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

时间:2015-03-14 19:03:19

标签: php ipb

我有IPB,我有一个PHP应用程序,它不在论坛ROOT和另一个子域中。
在应用程序中,我需要访问成员数据,例如。帖子数,电子邮件等
我有最新的IPB版本和PHP 5.6 我搜索了很多解决方案,最后我找到了这个: Accessing IPB Classes Externally From Main Website
但是,它根本没用。没有错误,只需重定向到主论坛网址。

有没有人有IPB课程或其API的经验? 有人可以帮助我达到目标。
解决方案可能只是一行代码。

编辑: 我找到了解决方法,请查看下面的答案。
但是,我仍然对#34;更好的"溶液

1 个答案:

答案 0 :(得分:0)

经过一番研究,我配置了IPB重定向,因为主板网址与当前的URL /子域不匹配。 (我的情况)
所以......有一种解决方法,不是那么好但至少可以工作,而且是单线解决方案:

<?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上作弊的解决方法。
第二行是&#34;移动&#34; $ _SERVER [&#39; HTTP_HOST&#39;]数据到$ _SERVER [&#39; HTTP_HOST_R&#39;]因此,如果您需要在应用程序中使用当前(真实)URL,则可以使用此变量,因为HTTP_HOST会更改。 (需要解决方法)。