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

Bienvenue invité ( Connexion | Inscription )

 
Reply to this topicStart new topic
> Perte de la session administrative LORS du clic sur un élément dans 'Whois Online?', La session administrative est en problème dans certaines pages
SaphyraK
posté 30 Oct 2015, 19:15
Message #1


Ceinture jaune+ OSC
Icône de groupe

Groupe : Membres
Messages : 100
Inscrit : 6-November 12
Membre no 31715



Bonsoir!

Amis développeurs, depuis ce matin, j'ai un petit problème assez déconcertant.

En résumé:
Une fois identifié comme administrateur,
Je semble perdre la session admin si j'effectues un clic sur un élément de la liste 'Qui est en Ligne?' (dans Outils).
Et, cela semble aussi se produire lors de la création d'un produit. (ce qui est pas normal, le osCAdminID est bien présent)


Le problème:
C'est que cela fonctionnait très bien depuis mes changements apportés pour passer le site en PHP 5.4,
Donc, depuis le 24 septembre, tout fonctionnait très bien jusqu'à ce matin.
Et rien n'a été modifié -(le code des pages est resté inchangé depuis le 24 septembre)-


La cause possible:
Le site étant sur un serveur mutualisé....
Peut-être que quelquechose a changé sur le-dit mutualisé (OVH) ..

Mais poser la question de 'Qu'est-ce que vous avez fait comme mise à jour?' directement à OVH.. ne m'avancerait pas à de solides réponses de leur part.
(des mises à jours de leur infrastructure ils doivent en faire 100 par jours..)


Pour informations, la version (de test) sur un serveur dédié (non mutualisé donc) n'est pas affectée par ce problème !


Merci de votre aide/conseils, je suis un peu dans le flou là pour comprendre ce qui va pas, j'espère avoir de petites pistes de votre part smile.gif
N'hésitez pas à demander si vous avez besoin de plus de renseignements.

De mon côté, j'ai regardé dans le code des sessions, et tout semble OK.
Le lien (domaine) ne change pas d'un lien à l'autre (enfin, pas à ce que j'ai vu..)


--------------------
We get Everything, we are developpers, we are masters of the universe !
(just kidding.. **sigh**, just developpers...)
Go to the top of the page
 
Bonbec
posté 3 Nov 2015, 09:30
Message #2


Ceinture marron OSC
Icône de groupe

Groupe : Modérateurs
Messages : 1543
Inscrit : 30-May 06
Lieu : Vichy (03)
Membre no 10583



Bonjour,

Je en sais pas si tu as résolu ton problème, mais au cas où ... il y a dans la FAQ une astuce pour voir si le n° de session est bien passé d'une page à l'autre :
http://www.oscommerce-fr.info/faq/qa_info.php?qID=108
Des fois que cela puisse t'aider à voir ce qui cloche.

Sinon je me souviens avoir eu un problème de délimiteur dans le fichier whois_online.php (vers la ligne 95 mais comme mon fichier est assez modifié ...) :
Code
// if (preg_match('/^(.*)/i' . tep_session_name() . '=[a-f,0-9]+[&]*(.*)', $whos_online['last_page_url'], $array)) { echo $array[1] . $array[2]; } else { echo $whos_online['last_page_url']; }
   if (preg_match('/^(.*)' . tep_session_name() . '=[a-f,0-9]+[&]*(.*)/i', $whos_online['last_page_url'], $array)) { echo $array[1] . $array[2]; } else { echo $whos_online['last_page_url']; }


En regardant en détail mon fichier, j'ai trouvé une modif pour l'affichage du panier, mais je ne sais plus à quel moment je l'avais faite (vers ligne 165 pour moi) :
Code
//      if (PHP_VERSION < 4) {
//        $broken_cart = $cart;
//        $cart = new shoppingCart;
//        $cart->unserialize($broken_cart);
//      }

        if (PHP_VERSION < 4) {
          $broken_cart = $cart;
          $cart = new shoppingCart;
          $cart->unserialize($broken_cart);
        } else {
          $cart = $_SESSION['cart'];
          $currency = $_SESSION['currency'];
        }


--------------------
Config 1 en live : Osc 2.2 très fortement modifié ... UTF-8 et Php 5.4.
Contribs installées : down_for_maintenance_v 2.3 | Estimated Shipping v1.5 | imprint_1_3_5 | low_stock_report_v2.04 | visible_countries_1.2b | Products Tabs | shoppingCart_cleanup_v1.01.0 | + trop de bidouilles persos pas très OsCommerce (erreurs de jeunesse)
Config 2 en local avec UwAmp : Osc Phoenix
Go to the top of the page
 
SaphyraK
posté 5 Nov 2015, 18:44
Message #3


Ceinture jaune+ OSC
Icône de groupe

Groupe : Membres
Messages : 100
Inscrit : 6-November 12
Membre no 31715



Merci Bonbec,

Apparemment ce n'est pas vraiment ça le problème..
Car, non, le problème est toujours d'actualité.

En fait, à la ligne que tu m'as donné, moi j'avais déjà modifié comme suit:

Code
if (preg_match('/^(.*)' . preg_quote(tep_session_name(), '/') . '\=[a-f,0-9]+[&]*(.*)/i', $whos_online['last_page_url'], $array)) { echo $array[1] . $array[2]; } else { echo $whos_online['last_page_url']; }


(j'ai rajouté le preg_quote() pour protéger la session si des caractères étranges s'y trouvait, bien qu'il y a 1% de chance que ça arrive si une désynchronisation s'effectue)

Pour ce qui est du code de la vérification de la version de PHP, voilà comment moi j'avais re-développé la chose:

Code
      if (PHP_VERSION < 4) {
        $broken_cart = $cart;
        $cart = new shoppingCart;
        $cart->unserialize($broken_cart);
      }

    // -> Fixe l'erreur suivante: lorsque l'on clique sur un nom d'utilisateur (qui possède un ID client) le détail de son panier n'est plus visible.
      //
      // Comme dans PHP 5.4+ l'option register_globals n'existe plus, on doit alors faire usage de la méthode non dépréciée!
      // Ainsi pour la récupération des paniers, on utilises juste $_SESSION['cart'] à la place de $cart.
      // Pareil pour le formatage du prix total, on utilises juste $_SESSION['currency'] à la place de $currency.
      if (is_object($_SESSION['cart'])) {
        $products = $_SESSION['cart']->get_products();
        for ($i = 0, $n = sizeof($products); $i < $n; $i++) {
          $contents[] = array('text' => $products[$i]['quantity'] . ' x ' . $products[$i]['name']);
        }

        if (sizeof($products) > 0) {
          $contents[] = array('text' => tep_draw_separator('pixel_black.gif', '100%', '1'));
          $contents[] = array('align' => 'right', 'text'  => TEXT_SHOPPING_CART_SUBTOTAL . ' ' . $currencies->format($_SESSION['cart']->show_total(), true, $_SESSION['currency']));
    // <- Fixe l'erreur suivante: lorsque l'on clique sur un nom d'utilisateur  (qui possède un ID client) le détail de son panier n'est plus visible.
        } else {
          $contents[] = array('text' => '&nbsp;');
        }
      }
    }
  }


Comme tu peux le constater, j'ai complètement décidé de ne plus me servir des variables $cart et $currency

(elles ne sont plus utilisées du tout après, car n'étant de toutes façons pas globales et définies par whos_online.php)

Je me suis directement servi (pour vraiment faire disaparaître le concept déprécié des register_globals) de leur version en $_SESSION

Ca revient au même que ce que tu m'as montré.



De plus, hum..

J'insiste sur le fait (et c'est ça le plus étrange), que j'ai aussi ce problème de session quand je créé un nouveau produit, et que ça ne me le fait pas sur mon site de test (serveur dédié) ALORS que sur ce mutualisé ça a commencé à me le faire le 30 actobre 2015.

Alors que ça fonctionnait très bien avec toutes ces modifications depuis le 24 septembre 2015..


J'ai aussi modifié le code de comment inclure osCAdminID aux liens de pages.

donc dans: /admin/includes/functions/html_output.php

Code
////
// The HTML href link wrapper function
// DEPUIS PHP 5.4, le paramètre $_GET['osCAdminID'] semble ne plus se rajouter de lui-même..
// Ceci est problématique car cela provoquerait une certaine faille de sécurité...
// Il faut impérativement pallier à ce problème:
// 1. On ajoute à la fonction un paramètre $ajout_osCAdminID que l'on force par défaut à true.
// 2. Juste avant la fin de la fonction, on vérifie la valeur de ce paramètre, et si il est à true,
//  2.a. si $_COOKIE['osCAdminID'] n'est pas vide et existe,
//  2.b. on vérifie si il y a d'autres paramètres ($parameters) (car si il y en a d'autres, on devra utiliser & au lieu de ? comme caractère d'attributs HTTP), on créé une variable $http_attribute_character
//       qui contiendra cette information, puis
//  2.c. si il y a des paramètres: on ajoute la chaîne $http_attribute_character . osCAdminID=' . $_COOKIE['osCAdminID'] à $link. ($http_attribute_character = &)
//  2.d. si il n'y a pas de paramètres: on ajoute la chaîne $http_attribute_character . osCAdminID=' . $_COOKIE['osCAdminID'] à $link. ($http_attribute_character = ?)
  function tep_href_link($page = '', $parameters = '', $connection = 'NONSSL', $ajout_osCAdminID = true) {
    if ($page == '') {
      die('</td></tr></table></td></tr></table><br><br><font color="#ff0000"><b>Error!</b></font><br><br><b>Unable to determine the page link!<br><br>Function used:<br><br>tep_href_link(\'' . $page . '\', \'' . $parameters . '\', \'' . $connection . '\')</b>');
    }
    if ($connection == 'NONSSL') {
      $link = HTTP_SERVER . DIR_WS_ADMIN;
    } elseif ($connection == 'SSL') {
      if (ENABLE_SSL == 'true') {
        $link = HTTPS_SERVER . DIR_WS_ADMIN;
      } else {
        $link = HTTP_SERVER . DIR_WS_ADMIN;
      }
    } else {
      die('</td></tr></table></td></tr></table><br><br><font color="#ff0000"><b>Error!</b></font><br><br><b>Unable to determine connection method on a link!<br><br>Known methods: NONSSL SSL<br><br>Function used:<br><br>tep_href_link(\'' . $page . '\', \'' . $parameters . '\', \'' . $connection . '\')</b>');
    }
    if ($parameters == '') {
      $link = $link . $page . '?' . SID;
    } else {
      $link = $link . $page . '?' . $parameters . '&' . SID;
    }

    while ( (substr($link, -1) == '&') || (substr($link, -1) == '?') ) $link = substr($link, 0, -1);

    switch ($ajout_osCAdminID)
        {
            default:
            case true:
                    if (!empty($_COOKIE['osCAdminID']))
                     {
                        $http_attribute_character = '';
                        if (empty($parameters)) { $http_attribute_character = '?'; } else { $http_attribute_character = '&'; }
                     $link = $link . $http_attribute_character . 'osCAdminID=' . $_COOKIE['osCAdminID']; }
                      ### FIX SPECIAL POUR LE MUTUALISE OVH (.ovhconfig) + mode FPM/FastCGI: START
                      // Pour une raison que j'ignore, le mode FPM de OVH concernant ses serveurs PHP sur des mutualisés (exclusivement réservés à eux)..
                      //  ne génère pas le $_COOKIE['osCAdminID']..
                      // Par le biais du code ci-dessous, je généres donc un ID semblable à celui qu'on devrait avoir mais en nous servant du session_id().
                    else if (empty($_COOKIE['osCAdminID']))
                     {
                        $http_attribute_character = '';
                        if (empty($parameters)) { $http_attribute_character = '?'; } else { $http_attribute_character = '&'; }
                     $link = $link . $http_attribute_character . 'osCAdminID=' . session_id(); }
                      ### FIX SPECIAL POUR LE MUTUALISE OVH (.ovhconfig) + mode FPM/FastCGI: STOP
                break;
                
            case false:
                    // ne rien faire..
                break;
        }
        
    return $link;
  }



En espérant que ce ne soit pas encore lié à PHP-FPM..

Merci de votre aide, j'attends avec impatiences quelques pistes, de mon côté en attendant, je fais différents tests.. mais le site ayant ce problème de session étant en production, ma marge de manoeuvre de tests est extrèmement limitée!

Bien entendu je pourrai couper le site et faire des tests plus poussés, mais je doute que sans pistes, je puisse trouver rapidement la cause..

Du coup, pour l'instant, le laisser en fonctionnement et faire avec ce problème tout en essayant à certains moments de la journée de le fixer est alors la meilleure chose à faire.

Des pistes seraient alors très appréciées!

Merci!


--------------------
We get Everything, we are developpers, we are masters of the universe !
(just kidding.. **sigh**, just developpers...)
Go to the top of the page
 
SaphyraK
posté 13 Nov 2015, 18:40
Message #4


Ceinture jaune+ OSC
Icône de groupe

Groupe : Membres
Messages : 100
Inscrit : 6-November 12
Membre no 31715



Hello,

J'ai remarqué à force de lecture des rapports (logs) que le nom des sessions sur le mutualisé étaient plus longue (à chaque fois) de 6 caractères comparé au site de test.
Et ce n'était pas le cas avant que ce problème n'apparaisse..

====

Est-ce qu'une âme charitable d'un autre développeur peut me créér une archive de ces fichiers:

'admin/includes/application_top.php'
'admin/functions/html_output.php'

Merci d'avance.


--------------------
We get Everything, we are developpers, we are masters of the universe !
(just kidding.. **sigh**, just developpers...)
Go to the top of the page
 
Bonbec
posté 29 Dec 2015, 08:33
Message #5


Ceinture marron OSC
Icône de groupe

Groupe : Modérateurs
Messages : 1543
Inscrit : 30-May 06
Lieu : Vichy (03)
Membre no 10583



Bonjour,

Dans ta table sessions, j'avais passé le champ `sesskey` en varchar(64) à la place de varchar(32) suite à un soucis de sessions chez un hébergeur.
Essaie, des fois que ...


--------------------
Config 1 en live : Osc 2.2 très fortement modifié ... UTF-8 et Php 5.4.
Contribs installées : down_for_maintenance_v 2.3 | Estimated Shipping v1.5 | imprint_1_3_5 | low_stock_report_v2.04 | visible_countries_1.2b | Products Tabs | shoppingCart_cleanup_v1.01.0 | + trop de bidouilles persos pas très OsCommerce (erreurs de jeunesse)
Config 2 en local avec UwAmp : Osc Phoenix
Go to the top of the page
 
SaphyraK
posté 4 Feb 2016, 12:19
Message #6


Ceinture jaune+ OSC
Icône de groupe

Groupe : Membres
Messages : 100
Inscrit : 6-November 12
Membre no 31715



Citation (Bonbec @ 29 Dec 2015, 08:33) *
Bonjour,

Dans ta table sessions, j'avais passé le champ `sesskey` en varchar(64) à la place de varchar(32) suite à un soucis de sessions chez un hébergeur.
Essaie, des fois que ...


Hello !

réponse très tardive, je suis d'accord, j'étais occupé sur ce problème et en même temps sur de nouvelles tâches.

Toutefois, ayant trouvé la solution (depuis le 27 novembre 2015) à force de tests et de manipulation du code.. Comme ce problème n'est pas forcément clair..

Amis développeurs, je vais ici vous l'écrire
Amis non-développeurs, je ne jargonises/simplifies pas mon code pour vous, si vous ne comprenez pas.. désolé, demandez à des développeurs



>> Le problème: perte de la session administrative lors de la simple visite ou d'un clic sur un élément dans "Whois Online".

>> Fichier impacté: admin/whos_online.php

>> La théorie de la cause déjà:

Problème ne survenant aussi qu'uniquement si phpinfo():Server API==FPM/FastCGI.

>> Mon code (commentaires inclus) :

Code
    if (1 == 1)
      {
         // Via le debug suivant, apparemment, les variables $session_data* contiennent bien les bonnes données..
         //  toutefois...
         echo '<pre>';
     print_r($session_data);
         echo '
' . $length .' = '. strlen($session_data);
         echo '
$session_data_id: ' . $session_data_id;
         echo '
$session_data_cart: ' . $session_data_cart;
         echo '
$session_data_currency: ' . $session_data_currency;
         echo '
$session_data_country: ' . $session_data_country;
         echo '
$session_data_zone: ' . $session_data_zone;
         die('</pre>');
         //  toutefois...
           //
            // La méthode de décodage session_decode() semble faire une réécriture des sessions, ce que l'on veut..
               // Mais ce que l'on ne veut pas, c'est que si FPM est actif en Server API de php en version 5.4.45
               // (ce qui n'était pas le cas en date du 24 septembre 2015 jusqu'au 30 octobre 2015),
               //  ça va aussi réécrire la session administrative..
               //  (car étant dans le tableau $_SESSION
               //
               // Et donc déconnecter l'administrateur avec la destruction de sa session.
               //
               // La raison: session_decode() n'arrive plus à décoder (désérialiser) les sessions..
               //            ce qui pousse PHP a détruire TOUTES les sessions pour l'hôte actuel (pc ou serveur).
               //            ce qui pousse alors osCommerce a revenir au menu de "login".
               //
               // En guise d'avertissement, on pourrait voir (si le log PHP est actif, ce qui est masqué dans le mode FPM/FastCGI en prod):
               //
               //    Warning: session_decode(): Failed to decode session object.
               //             Session has been destroyed in /home/sitetest/public_html/admin/whos_online.php on line XXX
               //
               // PROBLEME ASSEZ VICIEUX, CAR IL NE SE PRODUIT QUE SI UN CLIENT EST LOGGUE A SON COMPTE (côté boutique)
               //                         ET SEULEMENT SI CE CLIENT A QUELQUE CHOSE DANS SON PANIER.
               //                         ET QUE DU COTE ADMINSTRATEUR, L'ADMINISTRATEUR VEUT EN VOIR LE CONTENU VIA whos_online.php
               //
               // Description tirée du manuel PHP pour session_decode():
               //
               //    session_decode($data) décode les données de sessions linéarisées fournies dans le paramètre $data,
               //                                    et peuple la variable superglobale $_SESSION.
               //
               // On peut alors comprendre pourquoi, ce qui suit réécrit complètement $_SESSION et la vide...
               //
               // CETTE METHODE DEPUIS LE PATCH OVH AVEC session_decode() est ALORS DESORMAIS dépréciée !
               /*
           session_decode($session_data_id);
           session_decode($session_data_currency);
           session_decode($session_data_country);
           session_decode($session_data_zone);
           session_decode($session_data_cart);
           */
      }

           // Fixe le problème qui est survenu depuis que OVH est passé à l'utilisation d'un autre wrapper de sessions PHP ou SERVER API
           // Problème ne survenant aussi qu'uniquement si phpinfo():Server API==FPM/FastCGI.
           //
           // Afin de décoder (désérialiser) correctement la session admin
           //
           // On ne réinventes pas la roue et on se sert d'une alternative d'un collègue développeur:
           //
           // fonction de désérialisation des sessions (décodages)
           // trouvée sur: http://php.net/manual/fr/function.session-decode.php#79244
           // usage de l'adaptation sur: http://php.net/manual/fr/function.session-decode.php#55307
       function unserializesession($data) {
          $vars=preg_split(
                '/([a-zA-Z_\x7f-\xff][a-zA-Z0-9_\x7f-\xff]*)\|/',
                $data,-1,PREG_SPLIT_NO_EMPTY |                
                 PREG_SPLIT_DELIM_CAPTURE
                );
          for($i=0; $vars[$i]; $i++) {
              $result[$vars[$i++]]=unserialize($vars[$i]);    
          }
          return $result;
       }

          // Ainsi, on l'utilise désormais..
          // On revalorise les mêmes variables, mais, avec leur version décodées (désérialisées):
          $session_data_id = unserializesession($session_data_id);
          $session_data_currency = unserializesession($session_data_currency);
          $session_data_country = unserializesession($session_data_country);
          $session_data_zone = unserializesession($session_data_zone);
          $session_data_cart = unserializesession($session_data_cart);

          // Finalement, on restaure la session du Panier ($_SESSION['cart']) pour le consulter:
          // Sans cela, $_SESSION['cart'] resterait vide.
          // Et donc on n'aurait plus la possibilité de voir le contenu du panier des utilisateurs.
          $_SESSION['currency'] = $session_data_currency;
          $_SESSION['cart'] = $session_data_cart;

       // Fixe l'erreur suivante: lorsque l'on clique sur un nom d'utilisateur (qui possède un ID client) le détail de son panier n'est plus visible.
       //
       // Comme dans PHP 5.4+ l'option register_globals n'existe plus, on doit alors faire usage de la méthode non dépréciée!
       // Ainsi pour la récupération des paniers, on utilises juste $_SESSION['cart'] à la place de $cart.
       // Pareil pour le formatage du prix total, on utilises juste $_SESSION['currency'] à la place de $currency.
           //
           //  DANS LES VERSIONS SUPERIEURES A PHP 5.4.44 (FPM/FastCGI),
           //  PHP fait la différence entre TABLEAU (array) et OBJET (object).
           //
           // C'EST CE QUI POUSSE PHP A NE PAS COMPRENDRE POURQUOI ON ATTENDS UN OBJET alors qu'un TABLEAU EST LE RESULTAT !
           // DU COUP LA CONDITION is_object() NE SERA JAMAIS VALIDE SI ON NE LUI SOUMET PAS LE SECOND SOUS-TABLEAU (-qui est un objet-).
           // On peut clairement voir via le debug suivant que la variable de session ainsi générée est un TABLEAU et non un OBJET:
           if (!empty($_SESSION['cart']) && 1 == 1) {
             echo '<pre>'; print_r($_SESSION['cart']); echo '</pre>';
             // Mais le véritable objet recherché est désormais dans le sous-tableau 'cart' de la variable de session: $_SESSION['cart']
             if (is_object($_SESSION['cart']['cart'])) { echo 'OK'; } else { echo 'NOOK'; }
           }

       // Pour que ça fonctionne alors (que l'on trouve l'objet exact), on doit alors utiliser les sous-tableaux des tableaux..,
       // A la place de $_SESSION['cart'] --> On se sert de $_SESSION['cart']['cart']
       // Et même principe:
       // A la place de $_SESSION['currency'] --> On se sert de $_SESSION['currency']['currency']
       if (is_object($_SESSION['cart']['cart'])) {
         $products = $_SESSION['cart']['cart']->get_products();
         for ($i = 0, $n = sizeof($products); $i < $n; $i++) {
           $contents[] = array('text' => $products[$i]['quantity'] . ' x ' . $products[$i]['name']);
         }

         if (sizeof($products) > 0) {
           $contents[] = array('text' => tep_draw_separator('pixel_black.gif', '100%', '1'));
           $contents[] = array('align' => 'right', 'text'  => TEXT_SHOPPING_CART_SUBTOTAL . ' ' . $currencies->format($_SESSION['cart']['cart']->show_total(), true, $_SESSION['currency']['currency']));


Et voilà.

Après ces quelques modifications du code et ajouts.. Cela fonctionnait comme attendu et comme c'était le cas avant ce fichu bug à la Hon !

rolleyes.gif

Bonne journée à tous et à toutes smile.gif


--------------------
We get Everything, we are developpers, we are masters of the universe !
(just kidding.. **sigh**, just developpers...)
Go to the top of the page
 
Havock
posté 4 Feb 2016, 15:45
Message #7


Ceinture bleue OSC
Icône de groupe

Groupe : Membres
Messages : 912
Inscrit : 4-February 04
Membre no 1926



ohmy.gif ohmy.gif ohmy.gif ohmy.gif ohmy.gif ohmy.gif ohmy.gif ohmy.gif ohmy.gif ohmy.gif ohmy.gif

Chapeau bas SaphyraK biggrin.gif blink.gif blink.gif blink.gif biggrin.gif

Dans la mesure où je n'utilise pas vraiment cette page j'ai juste viré toute la partie relative au panier smile.gif


--------------------
L'indispensable est en cours de traitement,
L'urgent sera traité demain,
Le normal sera traité plus tard,
Le reste on vera ...
En conclusion : les journées sont trop courtes.
Utilisateur de MS2.2 Max 1.5 - OSC-Affiliate 1.09 - Admin With Access Levels 2.1 - Meta Tag Controller/ Generator - Credit/Gift Voucher/Coupons 5.05 - Download Controller v5.3 - X-Sell MS2 - WYSIWYG HTML Editor for Admin 1.7 - Dynamic Mo Pics - Loginbox Best - Order logging before payment processing - User Tracking - Faster Page Loads, Less DB queries - Plus plein de modifs perso :-)
Go to the top of the page
 
SaphyraK
posté 4 Feb 2016, 17:30
Message #8


Ceinture jaune+ OSC
Icône de groupe

Groupe : Membres
Messages : 100
Inscrit : 6-November 12
Membre no 31715



Hello Havock,

Tout d'abord, merci, j'espère que ça servira à d'autres qui comme moi étaient sûrement en train de s'arracher les cheveux wink.gif

Toutefois, oui, virer tout l'affichage relatif au panier est une solution, mais dans mon sens, effectuer ce retrait aurait été plus un contournement en fait car l'on se priverait d'une fonction assez intéressante pour voir les paniers des clients, et donc avoir un petit aperçu de ce que les clients (en temps réels) ont dans leur panier.

Et puis c'est chouette de pouvoir voir rapidement qui commande quoi, afin de peut-être prévoir une stratégie commerciale par derrière biggrin.gif

Voili voilou wink.gif


--------------------
We get Everything, we are developpers, we are masters of the universe !
(just kidding.. **sigh**, just developpers...)
Go to the top of the page
 
Havock
posté 4 Feb 2016, 17:55
Message #9


Ceinture bleue OSC
Icône de groupe

Groupe : Membres
Messages : 912
Inscrit : 4-February 04
Membre no 1926



Tu as raison, mais ça fait longtemps que je ne regarde plus les paniers de mes clients en temps réel biggrin.gif (pas assez de temps pour ça) smile.gif


--------------------
L'indispensable est en cours de traitement,
L'urgent sera traité demain,
Le normal sera traité plus tard,
Le reste on vera ...
En conclusion : les journées sont trop courtes.
Utilisateur de MS2.2 Max 1.5 - OSC-Affiliate 1.09 - Admin With Access Levels 2.1 - Meta Tag Controller/ Generator - Credit/Gift Voucher/Coupons 5.05 - Download Controller v5.3 - X-Sell MS2 - WYSIWYG HTML Editor for Admin 1.7 - Dynamic Mo Pics - Loginbox Best - Order logging before payment processing - User Tracking - Faster Page Loads, Less DB queries - Plus plein de modifs perso :-)
Go to the top of the page
 

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

 



RSS Version bas débit Nous sommes le : 28th March 2024 - 14:37
Ce site est déclaré auprès de la commision Nationale
de l'Informatique et des Libertés (déclaration n°: 1043896)