osCommerce France : Accueil Forum Portail osCommerce France Réponses aux questions Foire aux contributions

Bienvenue invité ( Connexion | Inscription )

> Boucle Checkout_shipping
DeathWarrior
posté 15 Jun 2017, 14:06
Message #1


Ceinture jaune OSC
Icône de groupe

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 smile.gif.


--------------------
Oscommerce MS 2.2
Go to the top of the page
 
 
Start new topic
Réponse(s)
DeathWarrior
posté 21 Jun 2017, 08:11
Message #2


Ceinture jaune OSC
Icône de groupe

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
Go to the top of the page
 

Les messages de ce sujet


Reply to this topicStart new topic
1 utilisateur(s) sur ce sujet (1 invité(s) et 0 utilisateur(s) anonyme(s))
0 membre(s) :

 



RSS 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)