PHP Fatal Error: Using $this when not in object context... Used for redirect()

PHP Fatal Error: Using $this when not in object context... Used for redirect()

我是 PHP 的新手。我一直在尝试使此授权码起作用,但出现此错误:

Call to undefined function redirect()

代码:

$Auth = Auth::getAuth();
if($Auth->loggedIn())
{
    redirect(getCoreSitePath().'/account.'.SITE_CONFIG_PAGE_EXTENSION);
}

if(isset($_REQUEST['error_description']))
{
    $error = $_REQUEST['error_description'];
}
redirect(getCoreSitePath()."/login.".SITE_CONFIG_PAGE_EXTENSION."?social_login_error=".urlencode($error));

根据一些谷歌搜索,我发现我可能需要添加 $this->load->helper('url');

修改后的代码:

$Auth = Auth::getAuth();
$this->load->helper('url');
if($Auth->loggedIn())
{
    redirect(getCoreSitePath().'/account_home.'.SITE_CONFIG_PAGE_EXTENSION);
}

if(isset($_REQUEST['error_description']))
{
    $error = $_REQUEST['error_description'];
}
redirect(getCoreSitePath()."/login.".SITE_CONFIG_PAGE_EXTENSION."?plugin_social_login_error=".urlencode($error));

但现在我得到这个错误:

Using $this when not in object context

我尝试了建议 here 但无法正常工作。

redirect() 不是 built-in 函数,您是否在某处定义了它?如果没有,您可以简单地定义一个而无需更改代码

function redirect($url)
{
    header("Location: $url");
    die();
}

请注意,这个函数并不是真正需要的,你可以简单地用这个函数发出的 header 调用来改变你的 redirect() 调用,但我只是添加了它,因为你有很多调用 redirect() 并且需要更改大量代码才能做到这一点。你可以在任何 class 之外定义这个函数,然后你可以在没有 $this->

的情况下使用它