IPB - 访问 IPB 根外的成员数据 PHP
IPB - Access member data PHP outside IPB root
我有 IPB,我有一个 PHP 应用程序,它在论坛 ROOT 之外,也在另一个子域上。
在应用程序中,我需要访问成员数据,例如。帖子数、电子邮件等
我有最新的 IPB 版本和 PHP 5.6
我在谷歌上搜索了很多解决方案,最后我找到了这个:
Accessing IPB Classes Externally From Main Website
但是,它根本没有用。没有错误,只是重定向到主论坛 URL。
有没有人有使用 IPB 类 和/或 API 的经验?
有人可以帮助我达到目标吗?
解决方法大概就是一行代码。
编辑:
我找到了解决方法,请查看下面的答案。
但是我仍然对 "nicer" 解决方案感兴趣。
经过一些研究,我配置了 IPB 重定向,因为板 url 与当前 URL/subdomain 不匹配。 (我的情况)
所以......有解决方法,不是很好但至少有效,并且是单行解决方案:
<?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 上作弊的变通方法。
第二行是 "moving" $_SERVER['HTTP_HOST'] 到 $_SERVER['HTTP_HOST_R'] 的数据,所以如果你的应用程序需要 current(real) URL,你可以使用这个变量而不是因为 HTTP_HOST 一个被改变了。 (解决方法需要)。
我有 IPB,我有一个 PHP 应用程序,它在论坛 ROOT 之外,也在另一个子域上。
在应用程序中,我需要访问成员数据,例如。帖子数、电子邮件等
我有最新的 IPB 版本和 PHP 5.6
我在谷歌上搜索了很多解决方案,最后我找到了这个:
Accessing IPB Classes Externally From Main Website
但是,它根本没有用。没有错误,只是重定向到主论坛 URL。
有没有人有使用 IPB 类 和/或 API 的经验?
有人可以帮助我达到目标吗?
解决方法大概就是一行代码。
编辑:
我找到了解决方法,请查看下面的答案。
但是我仍然对 "nicer" 解决方案感兴趣。
经过一些研究,我配置了 IPB 重定向,因为板 url 与当前 URL/subdomain 不匹配。 (我的情况)
所以......有解决方法,不是很好但至少有效,并且是单行解决方案:
<?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 上作弊的变通方法。
第二行是 "moving" $_SERVER['HTTP_HOST'] 到 $_SERVER['HTTP_HOST_R'] 的数据,所以如果你的应用程序需要 current(real) URL,你可以使用这个变量而不是因为 HTTP_HOST 一个被改变了。 (解决方法需要)。