Magento – Notice: unserialize(); Error at offset in Magento 2.2

fatal errormagento-2.1magento2.2magento2.2.0setup-di-compile

This code not working in Magento 2.2, But it's working in Magento 2.1. I am facing this error

Notice: unserialize(); Error at offset 0 of 168 bytes in /var/www/html/M2/app/code/Vendor/Module/Block/MyBlock.php

$infoRequest = $item->getOptionByCode('info_all')->getValue();
$addtoCartreqest = unserialize($infoRequest);

Best Answer

Read More: blog.mageprince.com

Inject \Magento\Framework\Serialize\Serializer\Json class for serialize and unserialize values.

protected $serialize;

public function __construct(
    ...
    \Magento\Framework\Serialize\Serializer\Json $serialize,
    ...
) {
    $this->serialize = $serialize;
}

Now use $this->serialize

 $value = $this->serialize->unserialize($serializeData);

As per Magento 2.2 Release Note

Security enhancements

In general, we’ve removed serialize/unserialize from most the code to improve protection against remote code execution attacks. We’ve enhanced protection of code where use of object serialization or unserialization was unavoidable. Additionally, we’ve increased our use of output escaping to protect against cross-site scripting (XSS) attacks.

Related Topic