Jump to content

  • You cannot start a new topic
  • You cannot reply to this topic

Php 7.0 Ошибка Сессий Rate Topic   - - - - -

 
  • tolik777
  • Newbie
  • Trial users
  • Join Date: 22-Nov 14
  • 5 posts

Posted 26 August 2016 - 05:48 AM #1

Обновил PHP до 7-ой версии и сайт вообще перестал запускаться. Включал debug-mode, но в логах РНР фатальные ошибки:

 

 

865 FastCGI sent in stderr: "PHP message: PHP Warning: session_start(): Session callback expects true/false return value in /var/www/cscart/app/Tygh/Session.php on line 341 PHP message: PHP Fatal error: session_start(): Failed to initialize storage module: user (path: /var/lib/php/sessions) in /var/www/cscart/app/Tygh/Session.php on line 341" while reading response header from upstream, client: 49.189.136.11, server:

 

Директория /var/lib/php/sessions имеет права 0777 да и сессии с других сайтов там валяются, и все работает.

По именно на CS Cart ошибка.

 

Сам файлик session.php выглядит так:

/**
 * Starts session
 * @param array $request Request data
 */
public static function start($request = array())
{
    // Force transfer session id to cookies if it passed via url
    if (!empty($request[self::$_name])) {
        self::setId($request[self::$_name], false);
    } elseif (empty($_COOKIE[self::$_name])) {
        self::setId(self::_generateId());
    }

    session_name(self::$_name);
    session_start();


    // Session checker (for external services, returns "OK" if session exists, empty - otherwise)
    if (!empty($request['check_session'])) {
        die(!empty($_SESSION) ? 'OK' : '');
    }

    // Validate session
    if (!defined('SKIP_SESSION_VALIDATION')) {
        $validator_data = self::getValidatorData();
        if (!isset($_SESSION['_validator_data'])) {
            $_SESSION['_validator_data'] = $validator_data;
        } else {
            if ($_SESSION['_validator_data'] != $validator_data) {
                session_regenerate_id();
                $_SESSION = array();
            }
        }
    }

    // _SESSION superglobal variable populates here, so remove it from global scope if needed
    if (Bootstrap::getIniParam('register_globals')) {
        Bootstrap::unregisterGlobals('_SESSION');
    }

}

341 строка это: session_start();



 

Posted 26 August 2016 - 06:36 AM #2

Какую версию CS-Cart вы используете? PHP7 поддерживается только начиная с версии 4.3.6

 

Обновил PHP до 7-ой версии и сайт вообще перестал запускаться. Включал debug-mode, но в логах РНР фатальные ошибки:

 

Директория /var/lib/php/sessions имеет права 0777 да и сессии с других сайтов там валяются, и все работает.

По именно на CS Cart ошибка.

 

Сам файлик session.php выглядит так:

/**
 * Starts session
 * @param array $request Request data
 */
public static function start($request = array())
{
    // Force transfer session id to cookies if it passed via url
    if (!empty($request[self::$_name])) {
        self::setId($request[self::$_name], false);
    } elseif (empty($_COOKIE[self::$_name])) {
        self::setId(self::_generateId());
    }

    session_name(self::$_name);
    session_start();


    // Session checker (for external services, returns "OK" if session exists, empty - otherwise)
    if (!empty($request['check_session'])) {
        die(!empty($_SESSION) ? 'OK' : '');
    }

    // Validate session
    if (!defined('SKIP_SESSION_VALIDATION')) {
        $validator_data = self::getValidatorData();
        if (!isset($_SESSION['_validator_data'])) {
            $_SESSION['_validator_data'] = $validator_data;
        } else {
            if ($_SESSION['_validator_data'] != $validator_data) {
                session_regenerate_id();
                $_SESSION = array();
            }
        }
    }

    // _SESSION superglobal variable populates here, so remove it from global scope if needed
    if (Bootstrap::getIniParam('register_globals')) {
        Bootstrap::unregisterGlobals('_SESSION');
    }

}

341 строка это: session_start();


Sincerely yours, CS-Cart Support Team

 

User guide       |  Developer documentation  |  Core API documentation


 
  • kaavain
  • Senior Member
  • Members
  • Join Date: 22-Nov 14
  • 1124 posts

Posted 01 May 2018 - 08:03 AM #3

Я понимаю, бесполезно спрашивать теперь на форуме, так как инкто не отвечает. Но вдруг? Имею такую же проблему:

PHP Catchable fatal error: session_regenerate_id(): Failed to create(read) session ID: user (path: /home/admin/tmp) in /home/admin/web/stencil-library.ru/public_html/app/Tygh/Web/Session.php on line 326

PHP 7.0
4.3.6

Странно но сессии установлены в БД.

Может быть такое после переезда? Сайт только переехал на другой сервер, на старом сессии были в Редис, сейчас в ДБ.

 
  • eComLabs
  • CS-Cart Expert
  • Authorized Reseller
  • Join Date: 27-Jan 14
  • 18358 posts

Posted 02 May 2018 - 06:23 AM #4

Ошибку не встречал, но удалось нагуглить такое решение.

 

https://github.com/I...mment-280470763

 

Попробуйте, только строка у вас другая будет


GET A FREE QUOTE | CS-Cart Add-ons | CS-Cart Licenses | CS-Cart Development | CS-Cart Design | Server Configuration | UniTheme and YOUPI
CS-Cart                USD 345     Multi-Vendor              USD 1250    CS-Cart RU                         24500 руб.
CS-Cart Ultimate  USD 775     CS-Cart + YOUPI      USD 545      CS-Cart RU + UniTheme    36000 руб.