6

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);
3

1 Answer 1

25

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.

0

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.