unserialize (): ошибка по смещению 10 из 672 байтов - PullRequest
1 голос
/ 26 июня 2019

Я создаю приложение codeigniter с сервером SQL.

Я запустил приложение с MySQL, и оно работало нормально, но затем, когда я слил свою таблицу с сервером SQL, я получил эту ошибку:

Сообщение: unserialize (): ошибка по смещению 10 из 672 байтов

Имя файла: core / MY_Controller.php

Номер строки: 3

Вотмой controller.php

 public function __construct() 
{
    parent::__construct();

    $group_data = array();
    if(empty($this->session->userdata('logged_in'))) {
        $session_data = array('logged_in' => FALSE);
        $this->session->set_userdata($session_data);
    }
    else {
        $user_id = $this->session->userdata('id');
        $this->load->model('model_groups');
        $group_data = $this->model_groups->getUserGroupByUserId($user_id);

        $this->data['user_permission'] = unserialize($group_data['permission']);

        $this->permission = unserialize($group_data['permission']);
    }
}

1 Ответ

0 голосов
/ 27 июня 2019

Я просто использовал функцию preg_replace_callback, и у меня она работала нормально:

   $group_data['permission']=preg_replace_callback('!s:(\d+):"(.*?)";!', 
            function($match) {
             return ($match[1] == strlen($match[2])) ? $match[0] : 's:' . strlen($match[2]) . ':"' . $match[2] . '";';},
             $error_serialized_data);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...