THELIA Forum

Welcome to the THELIA support and discusssion forum

Announcement

Rejoignez la communauté sur le Discord Thelia : https://discord.gg/YgwpYEE3y3
  • manu
  • faï tot petar miladiu

Offline


http://www.daleo.pt/


Pas de commentaire sur le design, le graphiste est resté bloqué à windows 3.1


http://doc.thelia.net/
http://thelia.net/modules
http://raynaud.io
PGP public Key : 0xC6E546A6

  • manu
  • faï tot petar miladiu

Offline

  • manu
  • faï tot petar miladiu

Offline


zzuutt wrote:

quand je regarde la function getCar()
elle me parait coherente

    public function getCart(EventDispatcherInterface $dispatcher, Request $request)
    {
        $session = $request->getSession();

        if (null !== $cart = $session->getCart()) {
            return $cart;
        }

        if ($request->cookies->has("thelia_cart")) {
            //le cookie de panier existe, on le récupère
            $token = $request->cookies->get("thelia_cart");

            $cart = CartQuery::create()->findOneByToken($token);

            if ($cart) {
                //le panier existe en base
                $customer = $session->getCustomerUser();

                if ($customer) {
                    if ($cart->getCustomerId() != $customer->getId()) {
                        //le customer du panier n'est pas le mm que celui connecté, il faut cloner le panier sans le customer_id
                        $cart = $this->duplicateCart($dispatcher, $cart, $session, $customer);
                    }
                } else {
                    if ($cart->getCustomerId() != null) {
                        //il faut dupliquer le panier sans le customer_id
                        $cart = $this->duplicateCart($dispatcher, $cart, $session);
                    }
                }

            } else {
                $cart = $this->createCart($session);
            }
        } else {
            //le cookie de panier n'existe pas, il va falloir le créer et faire un enregistrement en base.
            $cart = $this->createCart($session);
        }
        $session->setCart($cart->getId());

        return $cart;
    }

Oui mais celle là elle ne vient pas de la 2.0.4


http://doc.thelia.net/
http://thelia.net/modules
http://raynaud.io
PGP public Key : 0xC6E546A6

Offline


elle vient d'ou ?

c'est une install direct en 2.0.4
c'est ce que je trouve dans Thelia/Cart/CarTrait.php

Last edited by zzuutt (21-11-2014 10:28:56)

  • manu
  • faï tot petar miladiu

Offline


zzuutt wrote:

elle vient d'ou ?

c'est une install direct en 2.0.4
c'est ce que je trouve dans Thelia/Cart/CarTrait.php

Pardon, je croyais que c'était le code de la classe session. Dans ce cas oui c'est bien la 2.0.4


http://doc.thelia.net/
http://thelia.net/modules
http://raynaud.io
PGP public Key : 0xC6E546A6

Offline


oui en session j'ai

    public function getCart()
    {
        $cart_id =  $this->get("thelia.cart_id");
        $cart = null;
        if ($cart_id) {
            $cart = CartQuery::create()->findPk($cart_id);
            if ($cart) {
                try {
                    $this->verifyValidCart($cart);
                } catch (InvalidCartException $e) {
                    $cart = null;
                }
            }
        }

        return $cart;
    }

Offline


- Même problème de panier
- Je n'ai pas touché à la configuration des sessions

- Par contre je ne me tire pas les cheveux ! (mais attend avec impatience la V2.1)

Je voulais aussi mettre en place la correction de Roadster31 sur 2.0.4, cela pose tant de problèmes que ça ?

  • manu
  • faï tot petar miladiu

Offline


la démo (http://demo.thelia.net) tourne aussi en 2.0.4

on peut avoir accès à ton site ou pas ?


http://doc.thelia.net/
http://thelia.net/modules
http://raynaud.io
PGP public Key : 0xC6E546A6

Offline


pour manu, je ferai en sorte que smile
access a quoi ?
plusieur acces complet via teamviewer
ou juste au site via login

Offline


Bonjour,
J'ai exactement le même souci sur une plateforme 2.0.4. Auriez-vous une idée de patch pour cette version ?
De quelle modif parles tu Manu :
Tu as changé une configuration concernant les sessions sur ton serveur ?
Merci d'avance,

  • manu
  • faï tot petar miladiu

Offline


sbos wrote:

Bonjour,
De quelle modif parles tu Manu :
Tu as changé une configuration concernant les sessions sur ton serveur ?
Merci d'avance,

ton serveur est pré configuré pour faire fonctionner les sessions. Leur durée de vie par exemple.


http://doc.thelia.net/
http://thelia.net/modules
http://raynaud.io
PGP public Key : 0xC6E546A6

  • manu
  • faï tot petar miladiu

Offline


zzuutt wrote:

pour manu, je ferai en sorte que smile
access a quoi ?
plusieur acces complet via teamviewer
ou juste au site via login

Tout ce qui pourrait me permettre de reproduire le bug : manu [at] thelia.net


http://doc.thelia.net/
http://thelia.net/modules
http://raynaud.io
PGP public Key : 0xC6E546A6

Offline


c'est envoye
Merci !

Offline


De mon côté, voilà ma conf php :

session.use_strict_mode = 0
session.use_cookies = 1
session.use_only_cookies = 1
session.name = PHPSESSID
session.auto_start = 0
session.cookie_lifetime = 0
session.cookie_path = /
session.cookie_domain =
session.cookie_httponly =
session.serialize_handler = php
session.gc_probability = 0
session.gc_divisor = 1000
session.gc_maxlifetime = 1440
session.bug_compat_42 = Off
session.bug_compat_warn = Off
session.referer_check =
session.cache_limiter = nocache
session.cache_expire = 180
session.use_trans_sid = 0
session.hash_function = 0
session.hash_bits_per_character = 5

Je pense comme solution temporaire mettre un grand entier pour la variable session.cookie_lifetime, histoire que les sessions aient une durée de vie très longue. Ce n'est pas très propre mais en attendant la version 2.1.0, ça pourrait faire l'affaire.

Offline


Mon session.cookie_lifetime est de 1 an     valeur par défaut dans thelia

  • manu
  • faï tot petar miladiu

Offline


La valeur 0 est celle par défaut, je vous laisse lire la documentation qui explique à quoi elle correspond : http://php.net/manual/fr/session.config … e-lifetime


@zzutt : en version 2.0.*, la valeur de session.cooki_lifetime n'est pas modifié ni modifiable. Tu confonds avec le cookie qui a pour nom "thelia_cart" et qui n'est pas lié à la session.


http://doc.thelia.net/
http://thelia.net/modules
http://raynaud.io
PGP public Key : 0xC6E546A6

Offline


Oui, je sais bien. Je me disais juste qu'en mettant session.cookie_lifetime à 31536000 par exemple, les sessions de connexion seraient valides un an et on pourrait éviter ce bug en attendant la version 2.1.0.
Bref, c'est un solution un peu sale mais ça fera l'affaire.

Offline


Oups
Je comprends que ce bug n'est pas évident à mettre en évidence
Mais quand on a la page blanche la seule solution est de vider ou supprimer le cookie thelia_cart

  • manu
  • faï tot petar miladiu

Offline


est-ce que par hasard, tu vides la table cart ?


http://doc.thelia.net/
http://thelia.net/modules
http://raynaud.io
PGP public Key : 0xC6E546A6

Offline


manu wrote:

est-ce que par hasard, tu vides la table cart ?

Personnellement, non.
mais j'ai ce problème une fois que la commande est passé (par ex:paypal) mais "non payé",
on ferme le navigateur, retourne sur le site page blanche.
Par contre, pas de problème avec le paiement "cheque"...

Offline


Comme prévu une solution est de configurer les variables php comme suit :

session.cookie_lifetime = 31536000
session.gc_maxlifetime = 31536000

Je vais utiliser cette config en attendant la 2.1.0 stable.

Bon courage,

Offline


Oui j'ai vidé après quelques tests

delete from `order`; 
delete from `customer`; 
delete from `cart`;

Offline


j'essaie de reproduire le bug de chez moi
en vain (j'ai la bonaldinite) je n'y arrive pas

au boulot 3 sur 6 testeurs ont eu la page blanche, je continue a recherche le fil conducteur

je comptais refaire la meme procedure pour vider la table avant la mise en ligne
ce serait celle-ci qui a causee ce probleme ?

Last edited by zzuutt (21-11-2014 22:48:30)

Offline


Le bug se produit comme suite

Je fais un achat complet
Quand j'arrive sur la page pay
Je retourne sur la page précédente
Je ferme le navigateur
J'ouvre de nouveau le navigateur
Je retourne sur le site
Page blanche

Seul moyen c'est de vider ou effacer le cookie thelia_cart
F5  le site s'affiche

Offline


C'est quoi l'erreur exacte qui cause la page blanche (do you remember ? Page blanche = erreur PHP... )


OpenStudio Toulouse