Неустранимая ошибка PHP: использование $ this, когда не в контексте объекта… Используется для redirect ()

0

Я новичок в 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, если не в объектном контексте

Я попробовал предложения здесь, но не смог заставить его работать.

  • 0
    $this используется в определении класса.
Теги:
class
function
fatal-error

1 ответ

1
Лучший ответ

redirect() не является встроенной функцией, вы ее где-то определили? Если нет, вы можете просто определить один без изменения кода

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

Обратите внимание, что эта функция действительно не нужна, вы можете просто изменить свои вызовы redirect() с вызовом заголовка, который выполняет эта функция, но я просто добавил ее, потому что у вас много вызовов для redirect() и вам нужно будет изменить много кода сделать так. И вы можете определить эту функцию вне любого класса, а затем вы можете использовать ее без $this->

  • 0
    поэтому я должен добавить это и не обращать внимания на '$ this-> load-> helper (' url ');'
  • 0
    Он предназначен только для поддержки ваших перенаправляющих вызовов, он ничего не делает для изменения вспомогательных URL-адресов, вам не нужно ничего менять
Показать ещё 2 комментария

Ещё вопросы

Сообщество Overcoder
Наверх
Меню