Не удается войти в Xibo CMS 1.8 после обновления с Xibo 1.7 - PullRequest
1 голос
/ 28 апреля 2020

Я установил версию Xibo CMS 1.7 и могу войти в систему и правильно использовать CMS. После этого, согласно требованию, я обновил CMS до версии 1.8. Я уже сделал резервную копию всех необходимых файлов, а также базы данных. Я следовал инструкциям по обновлению CMS с 1.7 до 1.8 по этой ссылке. https://xibo.org.uk/docs/setup/upgrade-manual-custom-install Я могу перейти на 1.8 с 1.7, но не могу войти в CMS. Я отладил код и обнаружил, что в сеансе токен не хранится. Но в CMS версии 1.7 я могу получить эти значения сеанса. Я отладил приведенный ниже код в файлах CMS

public static function CheckToken($tokenName = "token")
{
    if (!isset($_POST[$tokenName]) || !isset($_SESSION[$tokenName]))
        return false;
    if ($_POST[$tokenName] == $_SESSION[$tokenName])
    {
        // See if its still in Date
        if (($_SESSION[$tokenName.'_timeout'] + 1200) <= time())
        {
            return false;
        }
        return true;
    }
    else
    {
        unset($_SESSION[$tokenName]);
        Debug::LogEntry('error', "Form token incorrect from: ". $_SERVER['REMOTE_ADDR']. " with token [" . $_POST[$tokenName] . "] for session_id [" . session_id() . ']');
        return false;
    }
}

и ниже кода из index.class. php file

function login() 
{
    $db         =& $this->db;
    $user       =& $this->user;
    global $session;

    // this page must be called from a form therefore we expect POST variables      
    $username = Kit::GetParam('username', _POST, _USERNAME);
    $password = Kit::GetParam('password', _POST, _PASSWORD);
    $referingpage = rawurldecode(Kit::GetParam('referingPage', _GET, _STRING));

    // Check the token
    if (!Kit::CheckToken()) {
        // We would usually issue a HALT error here - but in the case of login we should redirect instead
        // Split on &amp; and rejoin with &
        $params = explode('&amp;', $referingpage, 3);
        $referingpage = implode('&', $params);

        $session->set('message', __('Sorry the form has expired. Please refresh.'));

        header('Location:index.php?' . $referingpage);
        exit;
    }

    if ($user->login($username,$password)) 
    {
        $userid = Kit::GetParam('userid', _SESSION, _INT);
        $session->set_user(session_id(), $userid, 'user');
    }

    Debug::LogEntry('audit', 'Login with referring page: ' . $referingpage);

    if ($referingpage == '') 
    {
        header('Location:index.php?p=index');
    }
    else 
    {
        // Split on &amp; and rejoin with &
        $params = explode('&amp;', $referingpage, 3);
        unset($params['message']);
        $referingpage = implode('&', $params);

        header('Location:index.php?' . $referingpage);
    }

    exit;
}

Может кто-нибудь помочь мне решить эту проблему?

...