Laravel 4 - unserialize(): ошибка по смещению 0 из 32 байтов

Когда я устанавливаю Laravel 4, я получаю эту ошибку:

ErrorException
unserialize(): Error at offset 0 of 32 bytes

C:\xampp\htdocs\blog\laravel\bootstrap\compiled.php
return unserialize($this->stripPadding($this->mcryptDecrypt($value, $iv)));

Если я изменю возврат следующим образом:

return unserialize(base64_decode($this->stripPadding($this->mcryptDecrypt($value, $iv))));

Потом ошибка уходит. Но, конечно, каждый раз, когда я запускаю обновление композитора, это изменение будет отменено.

Что может быть причиной этой проблемы?

Я ценю любую помощь.

Обновление: это происходит только при использовании Auth::check().

Обновление 2: теперь работает только с удаленным base64_decode(). Это похоже на то, что установка xampp стала самоосознающей. Иисус!


person user2094178    schedule 31.05.2013    source источник
comment
Я бы сказал, что да, но убедитесь, что модуль mcrypt загружен. Проверьте свой phpinfo() и проверьте php -m из командной строки.   -  person Jason Lewis    schedule 01.06.2013
comment
Если я запускаю php --ri mcrypt, все в порядке. Все проблемы, которые у меня были в последние дни с Laravel 4, похоже, связаны с mcrypt, я думаю, пришло время чистой установки xampp.   -  person user2094178    schedule 01.06.2013
comment
Г-н Льюис, если это происходит только с Auth::check(), то я полагаю, что все сводится к return 'login_'.md5(get_class($this)); в Illuminate/Auth/Guard.php в строке 544. Если это так, это это определенно проблема mcrypt?   -  person user2094178    schedule 01.06.2013


Ответы (4)


Обратитесь к этой проблеме: laravel/framework#1526

Причиной является изменение механизма шифрования. Мое решение состояло в том, чтобы очистить sessions и views, которые были кэшированы в папке storage, затем запустить php artisan key:generate и перезапустить сервер. Я не уверен, какая часть процесса устранила проблему, но с тех пор я ее не видел.

person Dwight    schedule 04.06.2013
comment
Хорошо, я сделал новую установку, чтобы решить эту проблему, я не могу проверить ваше предложение, но то, что вы говорите, имеет большой смысл. Спасибо, что указали на проблему на github, никто не мог мне помочь, когда она впервые появилась, и я как раз собирался разрушить свою текущую установку xampp. - person user2094178; 08.06.2013
comment
Эта проблема возникла после того, как на моей машине произошел сбой синего экрана. Не уверен, что именно произошло, но следуя вашим инструкциям, мое приложение снова заработало. Благодарю вас! +1 - person Inigo; 10.12.2014
comment
наконец, команда php artisan key: сгенерировать исправила мою проблему. Спасибо. :) - person interstellarDust; 18.05.2015
comment
Я только очистил папки сеансов и представлений в хранилище, и это сработало. Благодарю вас! - person Christoffer; 01.06.2015

Команда > php artisan cache:clear устранила проблему для меня. Мне не пришлось перезапускать сервер

person monobloclimber    schedule 25.09.2014
comment
У меня это не сработало, но очистка папок, как предложил @Dwight, сработала для меня. - person clod986; 18.11.2015

Можете ли вы опубликовать, что вы делаете, что вызывает эту ошибку? Вы не должны изменять ядро ​​​​- потому что, как вы сказали, обновления перезапишут его.

person Rob W    schedule 31.05.2013
comment
Я забыл упомянуть, что это происходит только тогда, когда я использую Auth::check(). - person user2094178; 31.05.2013

Вы должны установить ключ новостей, используя следующую команду:

php artisan key:generate

После этого теста снова запустите приложение Laravel.

php artisan serve
person Jose Seie    schedule 22.06.2019