Я новичок в PHP. Я пытался заставить этот код авторизации работать, но я получаю эту ошибку:
Вызов на неопределенное перенаправление функции()
Код:
$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));
Исходя из некоторого Googling, я увидел, что мне может понадобиться добавить $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));
Но теперь я получаю эту ошибку:
Использование $ this, если не в объектном контексте
Я попробовал предложения здесь, но не смог заставить его работать.
redirect()
не является встроенной функцией, вы ее где-то определили? Если нет, вы можете просто определить один без изменения кода
function redirect($url)
{
header("Location: $url");
die();
}
Обратите внимание, что эта функция действительно не нужна, вы можете просто изменить свои вызовы redirect()
с вызовом заголовка, который выполняет эта функция, но я просто добавил ее, потому что у вас много вызовов для redirect()
и вам нужно будет изменить много кода сделать так. И вы можете определить эту функцию вне любого класса, а затем вы можете использовать ее без $this->
$this
используется в определении класса.