Bonjour,
Même problème avec Prestashop 1.7.6.5, sur ovh performance 1, cluster 028.
La solution, dans le fichier :
/vendor/symfony/symfony/src/Symfony/Component/Form/Extension/Csrf/Type/FormTypeCsrfExtension.php
Ajouter le return; dans :
public function buildForm(FormBuilderInterface $builder, array $options)
{
return;
if (!$options['csrf_protection']) {
return;
}
———
Puis, mettre $defaultEnabled = false au lieu de true :
public function __construct(CsrfTokenManagerInterface $defaultTokenManager, $defaultEnabled = false, $defaultFieldName = '_token', T
———
Puis dans le fichier :
/src/PrestaShopBundle/EventListener/TokenizedUrlsListener.php
Ajouter return; comme ceci :
public function onKernelRequest(GetResponseEvent $event)
{
$request = $event->getRequest();
return;
if (TokenInUrls::isDisabled()) {
return;
}
———
Edité : ajout de ceci :
Pour éviter une erreur « This form should not contain extra fields » lors de la création / modification de catégories, modifier dans le fichier :
/vendor/symfony/symfony/src/Symfony/Component/Form/Extension/Validator/Constraints/FormValidator.php
Vers la ligne 130, juste après //Mark the form with an error if it contains extra fields, ajouter /* et après } ajouter */ pour obtenir quelque chose comme ceci :
// Mark the form with an error if it contains extra fields
/*
if (!$config->getOption('allow_extra_fields') && \count($form->getExtraData()) > 0) {
$this->context->setConstraint($formConstraint);
$this->context->buildViolation($config->getOption('extra_fields_message'))
->setParameter('{{ extra_fields }}', '"'.implode('", "', array_keys($form->getExtraData())).'"')
->setInvalidValue($form->getExtraData())
->setCode(Form::NO_SUCH_FIELD_ERROR)
->addViolation();
}
*/
Pour moi ça a fonctionné. Gardez bien une copie des fichiers originaux avant modification.
David.