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 .
Bonjour,
Logiquement quand on clique sur "recalculer", c'est la page shopping_cart.php qui se recharge après recalcul.
Si c'est le site indiqué dans le profil, le clic sur "recalculer" fonctionne normalement sur la page shopping_cart.php.
Je n'ai pas été plus loin car il faut créer un compte client.
Je me suis peut être mal exprimer. Le bouton Recalculer fonctionne très bien. Mais il provoque d'une certaine façon un bug.
Situation 1 : Je trouve un cable, je l'ajoute au panier, je clique sur commander et je vais jusqu'a la fin de la commande sans problème.
Situation 2 : Je trouve un cable, je l'ajoute au panier, je clique sur commander, mais je me rend compte qu'il m'en fallait 2. Je retourne dans mon panier, change la quantité avec recalculer. Puis je reclique sur commande. Et la, je ne pourrais pas aller plus loin que la page de choix d'expedition. A chaque fois que je clique sur continuer, je me retrouve sur la même page.
Bonjour,
Je n'ai plus les fichiers originaux de la 2.2 depuis longtemps, mais (si je n'ai pas touché cette partie là du code) quand tu clique pour recalculer le panier, tu valide un formulaire dirigé vers la page shopping_cart.php en faisant passer en Get le paramètre action avec la valeur 'update_product'
Merci de ta réponse. J'ai pu tester un peu plus.
Je n'arrive pas a comprendre ce qu'il se passe exactement mais j'ai tester le changement d'adresse. Peu importe ce que je faisais, le changement de la variable session sendto ne changeait pas. J'ai essayé de mettre tep_session_register('sendto'); juste avant la redirection et la miracle, le changement est prit en compte. Je me suis dis que j'avais dû supprimer une ligne a un moment mais j'ai comparé avec une version non modifié de OSC 2.3.4, le code est identique.
Si je suis le cheminement du code après avoir changer l'adresse et valider.
checkoup_shipping_address.php
Bonjour,
C'est dans catalog/checkout_shipping.php vers la ligne 30 (mon fichier perso est modifié, donc çà peut varier un peu), il y a :
J'ai réussi a comprendre. Cela vient d'un ajout que j'avais fait a l’époque pour les register_globals. Il y avait extract($_SESSION, EXTR_SKIP); dans application_top. J'ai remplacer cette partie par celle contenu dans la version 2.3.4 tout frais. A savoir : extract($_SESSION, EXTR_OVERWRITE+EXTR_REFS);
Mais ça c'est pour le problème de changement d'adresse uniquement. J'ai toujours la boucle sur checkout_shipping lorsque je veux continuer. Mais c'est possible que le problème soit identique mais avec les variables POST plutôt.
Tu as des valeur de session définies pour shipping ou cartID ?
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.
Propulsé par Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)