Boucle Checkout_shipping |
Bienvenue invité ( Connexion | Inscription )
Boucle Checkout_shipping |
15 Jun 2017, 14:06
Message
#1
|
|
Ceinture jaune OSC Groupe : Membres Messages : 60 Inscrit : 24-December 04 Lieu : Paris Membre no 4177 |
Bonjour,
Je me creuse la tête depuis 1 semaine sans arriver a comprendre d’où le bug peut venir. Si un client va dans son panier et clique sur commander, aucun problème. Par contre si il a le malheur de cliquer sur Recalculer, la page checkout_shipping s'affichera en boucle, impossible d'aller plus loin. Même si il n'a rien modifier dans le panier. Le problème se résout de lui même en se déconnectant/reconnectant. De ce que j'ai pu comprendre, pour passer a la page suivante, il faut les bonnes variables POST (action=process) pour être rediriger les la page de paiement. Mais en mettant un var_dump($HTTP_POST_VARS) en haut de la page, $HTTP_POST_VARS est vide. Après cela peut venir aussi des variables sessions mais je n'arrive a determiner ce qui change avant et après le clique sur recalculer. En mettant un error_reporting(E_ALL), aucune erreur. Je suis sous Oscommerce 2.2 (modifier par de nombreuses contribs et de modifs perso) et PHP 5.6.30. J'ai testé également sur plusieurs navigateurs. Merci a ceux qui ont prit la peine de me lire . -------------------- Oscommerce MS 2.2
|
|
21 Jun 2017, 08:11
Message
#2
|
|
Ceinture jaune OSC Groupe : Membres Messages : 60 Inscrit : 24-December 04 Lieu : Paris Membre no 4177 |
shipping oui mais $_SESSION['cartid'] est null. Par contre j'ai $_SESSION['cart']['cartid']
Maintenant j'ai aussi les variables $_POST qui sont bonnes ce qui n'était pas le cas dans mon premier message. Edit: J'ai rien dit. Après deconnexion/reconnexion j'ai plus rien dans $_POST. Même en prenant la valeur tout au début du fichier PHP. J'ai vérifier la source, le code HTML est bien présent. Edit2 : Bah les variables sont revenues. J'ai mis un commentaire dans la commande pour voir, et il était bien enregistré d'une façon ou d'une autre. Edit3: J'ai comparé les deux dump de $_SESSION (quand la commande fonctionne et quand j'ai la boucle après avoir cliquer sur recalculer). La seule chose qui change c'est $_SESSION['cart']['cartid']. La valeur est null quand ça fonctionne et j'ai un ID quand ça fonctionne plus. J'aurais imaginé l'inverse... Edit4: ET BAH ENFIN! J'ai trouvé. C'était bien cartID. J'ai copier le bout de code de la version 2.3.4 et ça a l'air de fonctionner. CODE if (!tep_session_is_registered('cartID')) { tep_session_register('cartID'); } elseif (($cartID != $cart->cartID) && tep_session_is_registered('shipping')) { tep_session_unregister('shipping'); } $cartID = $cart->cartID = $cart->generate_cart_id(); Moi j'avais juste : CODE if (!tep_session_is_registered('cartID')) tep_session_register('cartID'); Je ne sais pas si j'ai supprimé ça par erreur a un moment mais là ça a l'air de fonctionner. Merci pour votre aide en tout cas. Ce message a été modifié par DeathWarrior - 21 Jun 2017, 10:01. -------------------- Oscommerce MS 2.2
|
|
Version bas débit | Nous sommes le : 28th March 2024 - 13:42 |
Ce site est déclaré auprès de la commision Nationale de l'Informatique et des Libertés (déclaration n°: 1043896) |