webbax Posted February 28, 2011 Share Posted February 28, 2011 Bonjour à tous,Est-ce que quelqu'un a déjà rencontré le problème suivant ?Lorsque je suis dans le back-office de la boutique d'un client en version "1.3.1.1", il y a genre 50 produits sur la catégorie accueil, donc la pagination est active. Seulement lors que je clique sur la 2ème page j'obtiens : "502 Bad Gateway". Sur le serveur en local cela fonctionne correctement en faisant la même opération.Pourtant dans le reste de la boutique tout fonctionne correctement. Le .htaccess est à jour la configuration de migration a été effectuée avec les bonnes url.Avez-vous une idée là-dessus avant que je passe au crible tout le processus d'appel de la pagination ?Merci d'avance Link to comment Share on other sites More sharing options...
Samy_R Posted March 2, 2011 Share Posted March 2, 2011 Le problème se pose-t-il encore ?L'URL appelée est-elle bien formée? Link to comment Share on other sites More sharing options...
webbax Posted March 3, 2011 Author Share Posted March 3, 2011 Bonjour le problème a été résolu de la manière suivante.Dans la section de mémorisation du filtre (dans le fichier index.php du répertoire admin), il suffit de faire un echo vide et ensuite le traitement s'exécute correctement.Vers la ligne "40" du fichier "index.php" du répertoire "admin" /* Filter memorization */ if (isset($_POST) AND !empty($_POST) AND isset($adminObj->table)) foreach ($_POST AS $key => $value) echo ' '; // faire un echo vide if (is_array($adminObj->table)) { foreach ($adminObj->table AS $table) if (strncmp($key, $table.'Filter_', 7) === 0 OR strncmp($key, 'submitFilter', 12) === 0) $cookie->$key = !is_array($value) ? $value : serialize($value); } elseif (strncmp($key, $adminObj->table.'Filter_', 7) === 0 OR strncmp($key, 'submitFilter', 12) === 0) $cookie->$key = !is_array($value) ? $value : serialize($value); 1 Link to comment Share on other sites More sharing options...
mariae Posted March 9, 2011 Share Posted March 9, 2011 Thanks ,I have this problem and then i can resolved. Link to comment Share on other sites More sharing options...
promopubbe Posted December 30, 2011 Share Posted December 30, 2011 Bonjour, Faut-il copier ce code à la ligne 40 ou remplacer un code existant. Je ne comprend pas bien la manipulation à faire. Merci Link to comment Share on other sites More sharing options...
Samy_R Posted December 30, 2011 Share Posted December 30, 2011 Bonjour, Faut-il copier ce code à la ligne 40 ou remplacer un code existant. Je ne comprend pas bien la manipulation à faire. Merci Après foreach ($_POST AS $key => $value) vous devez saisir echo ''; comme indiqué (tout ça vers la ligne 42) Link to comment Share on other sites More sharing options...
leeloo Posted May 17, 2012 Share Posted May 17, 2012 Merci webbax pour l'astuce qui fonctionne parfaitement. Link to comment Share on other sites More sharing options...
m.andrzejak Posted July 11, 2012 Share Posted July 11, 2012 Work for me too. Thanks! Link to comment Share on other sites More sharing options...
Olrik Posted November 24, 2012 Share Posted November 24, 2012 J'avais ce problème à corriger urgent pour le boulot à faire et MERCI MILLE FOIS Ce correctif a bien fonctionné !!! ( Vers la ligne "40" du fichier "index.php" du répertoire "admin" ) Link to comment Share on other sites More sharing options...
piqture Posted August 28, 2013 Share Posted August 28, 2013 Bonjour, Ayant eu le même problème j'ai eu recours à la même solution qui fonctionne. Avant de faire cette petite modif, j'avais essayé de faire une MAJ de ma version 1.4.7 vers la 1.5, celle-ci a échouée (504 Gateway Time Out). Je suis donc retourné sur ma version 1.4.7. Quelqu'un sait-il si la petite modif autoriserait la MAJ ? D'avance merci CRDLT Link to comment Share on other sites More sharing options...
djb77 Posted May 30, 2015 Share Posted May 30, 2015 Merci 1000 fois pour cette astuce qui fonctionne sur 1.4.8.2 (résout également le fait que je ne pouvais même plus filter ou réinitialiser les commandes clients). Link to comment Share on other sites More sharing options...
unanim Posted February 23, 2016 Share Posted February 23, 2016 Merci @Webbax Nous avions des erreurs type "502 bad gateway" ou affichage d'une page blanche "(null)" depuis quelques jours sur une 1.4.6.2 (OVH) sur certaines pages du B.O. (paniers, clients...). La version PHP a été mise à jour sur la plus récente mais cela ne suffisait pas à résoudre le problème. L'ajout de: echo '';// derrière la ligne foreach ($_POST AS $key => $value) (ligne 84, chez nous, de index.php du répertoire admin) a corrigé les problèmes rencontrés. Link to comment Share on other sites More sharing options...
akhawat Posted August 14, 2016 Share Posted August 14, 2016 bonjour je suis sur 1.5.6.1 et je rencontre depuis eu ce probleme d'erreur 502 par contre je ne trouve pas cette fameuse ligne "foreach ($_POST AS $key => $value) " pour mettre l'écho derrière quelqu'un sait il ou je doit mettre l'echo ? cdlt Link to comment Share on other sites More sharing options...
Sébastien Hutter Posted March 5, 2020 Share Posted March 5, 2020 Bonjour, Je ressors ce thread assez ancien pour partage la solution que j'ai trouvé, si jamais ça peut servir à quelqu'un - celle proposée plus haut ne fait en fait que contourner le problème (elle court-circuite une partie du code). J'ai dû intervenir sur une vieille version 1.4.11 impossible à mettre à jour (trop de modifs), et je pense avoir localisé la source du problème. En fait, pour chaque champ de filtre dans les listings, Prestashop modifie puis écrit le cookie qui sauvegarde les valeurs saisies. Or, cela déclenche l'envoi de headers multiples (Set-Cookie) avec la requête, et si Apache ne limite pas leur nombre (d'où l'absence d'erreur 500 ou php), certains hébergeurs (dont OVH notamment) le font, ce qui cause l'erreur 502. Pour contourner le problème, j'ai modifié la classe Cookie (dans classes/Cookie.php), en replaçant la partie ci-dessous (vers la ligne 307) : public function write() { $cookie = ''; /* Serialize cookie content */ if (isset($this->_content['checksum'])) unset($this->_content['checksum']); foreach ($this->_content as $key => $value) $cookie .= $key.'|'.$value.'¤'; /* Add checksum to cookie */ $cookie .= 'checksum|'.crc32($this->_iv.$cookie); /* Cookies are encrypted for evident security reasons */ return $this->_setcookie($cookie); } Par celle-ci : public function write() { $cookie = ''; /* Serialize cookie content */ if (isset($this->_content['checksum'])) unset($this->_content['checksum']); foreach ($this->_content as $key => $value) $cookie .= $key.'|'.$value.'¤'; /* Add checksum to cookie */ $cookie .= 'checksum|'.crc32($this->_iv.$cookie); /* Cookies are encrypted for evident security reasons */ if ( empty( $this->_dataToWrite ) ) { register_shutdown_function( array( $this, 'delayedWrite' ) ); } $this->_dataToWrite = $cookie; return true; } /** * Content for the delayed cookie write * @var string */ protected $_dataToWrite; /** * Callback for delayed cookie write * @return void */ public function delayedWrite() { $this->_setcookie($this->_dataToWrite); } Cela a résolu tous les problèmes d'erreur 502 en ce qui me concerne. Je n'ai pas effectué de tests extensifs non plus, donc je ne garantit pas que cela n'affecte pas une fonction ou une autre, mais pour l'instant rien à signaler 😀 Link to comment Share on other sites More sharing options...
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now