我试图从我的Laravel应用程序访问phpBB中的一些函数,这是为了在我的主站点上发生注册时添加用户和自动登录等操作.
PhpBB安装在/ public / forums下,我更新了.htaccess以允许它.我能够访问并使用它就好了.
我有一个最初为codeigniter构建的帮助器,但应该转换到laravel世界.我将它作为帮助程序加载,将其置于应用程序下,使用它加载它
use App\Helpers\phpBBHelper;
我这样访问这些功能
$ph = new phpBBHelper(); $ph->addPhpbb3User('dave','password','dave@dave.com');
在我的助手的顶部,我有这个构造函数
public function __construct() { // Set the variables scope global $phpbb_root_path,$phpEx,$cache,$user,$db,$config,$template,$table_prefix; define('IN_PHPBB',TRUE); define('FORUM_ROOT_PATH','forum/'); $phpbb_root_path = (defined('PHPBB_ROOT_PATH')) ? PHPBB_ROOT_PATH : FORUM_ROOT_PATH; $phpEx = substr(strrchr(__FILE__,'.'),1); // Include needed files include($phpbb_root_path . 'common.' . $phpEx); // Initialize phpBB user session $user->session_begin(); $auth->acl($user->data); $user->setup(); // Save user data into $_user variable $this->_user = $user; }
当我执行代码时,我收到服务器500错误
PHP Fatal error: Call to a member function getScriptName() on null in /home/ubuntu/workspace/public/forum/phpbb/session.php on line 50
这是这条线
$script_name = $request->escape($symfony_request->getScriptName(),true);
我发现了一个关于堆栈溢出的帖子,它正好引用了我的问题,但该问题的解决方案从未发布过
在该线程中,有人建议因为phpBB和Laravel都使用composer,所以在加载类时会导致冲突.我不确定这是不是真的.
但是当我调用$user-> session_begin();时,Laravel肯定会影响phpBB.
我建议不要重新发明轮子并使用已编码的扩展名,如
lara-auth-bridge.注册只是在右表中插入正确的行,特别是不熟悉phpBB3,但是你可以看到新帐户后数据库中的更改创建.
编辑:您可以在try {} catch {}块中包围有问题的代码,以防错误对于注册本身而言不是致命的,因此服务器不会以500结尾.
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。