我有IPB,我有一个PHP应用程序,它不在论坛ROOT和另一个子域中。
在应用程序中,我需要访问成员数据,例如。帖子数,电子邮件等
我有最新的IPB版本和PHP 5.6
我搜索了很多解决方案,最后我找到了这个:
Accessing IPB Classes Externally From Main Website
但是,它根本没用。没有错误,只需重定向到主论坛网址。
有没有人有IPB课程或其API的经验?
有人可以帮助我达到目标。
解决方案可能只是一行代码。
编辑:
我找到了解决方法,请查看下面的答案。
但是,我仍然对#34;更好的"溶液
答案 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会更改。 (需要解决方法)。