Problème de panier dans une boutique

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : Problème de panier dans une boutique

par samoth14 » 30 août 2006, 10:24

ok mais ce qui m'étonne, c'est que beaucoup d'autres utilisateurs possèdent ce genre de boutique (OScommerce) et n'ont jamais eu à faire cette modification pour que leur session fonctionne bien. C'est assez étrange.

par polo » 29 août 2006, 19:48

Bonjour,
oui, c'est ce qu'il ta dit!
<?php
session_start(); /* jamais rien au desus de session_start() */
?>
<html>
<head>
etc....
Voila :D

par Sineljogy » 29 août 2006, 19:47

session_start() doit être appelé avant d'afficher quoi que ce soit dans le navigateur.

par samoth14 » 29 août 2006, 18:50

En gros tu me conseilles de mettre un session_start() à chaque début de page en php?

J'édite toutes mes pages php et j'ajoute

Code : Tout sélectionner

session_start()
au début c'est ça?

par Cyrano » 29 août 2006, 17:49

Te fier à la configuration serveur pour démarrer automatiquement une session n'est pas prudent : ou alors il faudrait passer par ini_get() pour vérifier. Mais quoi qu'il en soit, tu dois contrôler ton code de bout en bout et contrôler toi-même les sessions: dis-toi que les hébergeurs ont chacun une configuration qui leur est propre et sur laqeuelle tu n'auras absolument aucun contrôle (à moins d'avoir un dédié)

Donc, démarre toi-même tes session, ce sera moins aléatoire comme résultat.

par samoth14 » 29 août 2006, 17:45

ben normalement quand session_autostart est sur ON pas besoin de session_start() je me trompe?

Sinon ça signifie qu'il faut en mettre à chaque page vu que je n'en ai jamais et les sessions utilisateurs, elles, fonctionnent très bien. Il n'y a que pour les sessions panier que ça bug.

par Cyrano » 29 août 2006, 17:08

Est-ce qu'il ne manquerait pas un session_start() quelque part qui couperait la session et te ferait perdre le contenu de la session ?

par samoth14 » 29 août 2006, 17:03

Mais à priori ce code ne gère pas la durée de session du panier.

j'ai modifié dans application_top (fichier appelé par toutes les pages de ma boutique) la durée du cookie (qui était sur 0, et normalement le 0 signifie que le cookie ne disparait qu'une fois le navigateur fermé...) en la mettant elle aussi sur la valeur que je voulais et ça ne marche pas non plus...

Mes sessions sont stockées dans un répertoire et voici mes réglages de sessions coté admin de mon site:
Répertoire des sessions: /home4/l/monsite/sessions/
Utilisation de force des cookies: False
Vérifiez l'identification de session: False
Vérifiez l'utilisateur: False
Vérifiez l'adresse IP: False
Empêchez les sessions d'araignée: True
Recréez une session: False
je viens d'essayer d'ajouter cette fonction:
if (function_exists('session_set_cookie_params')) { 
     session_set_cookie_params(0,'/catalog/'); 
à mon application_top mais ça n'a rien donné (peut-être mal ajouté c'est possible).

Tests fait avec IE et Opera:

- Je me logue. J'ajoute un produit dans mon panier. Je me délogue. Je me logue avec un autre compte, je me délogue. Je me relogue avec mon premier compte, et je retrouve mon panier. Je me logue avec Opera, mon panier est vide (sur IE, 1 article)

- 2 pcs différents logué avec le même compte. Si un panier est plein l'autre ne l'est pas forcément (logique).

Donc j'ai tendance à penser que la session panier est sous forme de cookie.

- Lorsque je bloque les cookies de IE, je peux quand même mettre dans mon panier des articles et payer (je viens de faire le test). Par contre, je ne peux plus me loguer en admin. --> J'en déduis que le panier n'est pas géré par un cookie, alors que les sessions admin le sont.

- J'ajoute un article dans mon panier. Je lance un chronomètre, le panier se vide au bout d'un temps indéterminé, aléatoire.

Donc je pense définitivement que la session panier n'est pas gérée par un cookie. Dans ce cas, elle est gérée coté serveur et lancée (et interrompue) par une fonction dans un script php. (vrai ou faux?)

Par contre le blocage de cookie m'a démontré que les sessions d'admin sont bien gérées sous forme de cookie (en refusant les cookies je ne pouvais plus me logguer).

Je vais tenter de trouver cette fonction même si je ne sais pas trop où chercher...si quelqu'un a une idée (une solution ce serait super top) je suis preneur parceque là je tourne en rond.

je ne suis pas un pro du php c'est la raison pour laquelle je fais appel à votre aide.

Merci d'avance pour votre aide

Cordialement,

Samoth

PS: désolé pour le post coupé en 2 mais en 1 seul morceau le forum disait que c'était un spam.

Problème de panier dans une boutique

par samoth14 » 29 août 2006, 17:03

Bonjour à tous,

J'ai un problème sur lequel je planche depuis si longtemps que je vais essayer de faire un résumé de tout ce que je sais:

j'ai remarqué que le panier de ma boutique en ligne fait n'importe quoi...au bout d'un certain temps (jamais le même) il se vide tout seul.

J'ai pourtant réglé mon fichier
includes\functions\sessions.php
en mettant ce code:
<?php

  if (STORE_SESSIONS == 'mysql') {
    if (defined('DIR_WS_ADMIN')) {
      if (!$SESS_LIFE = (SESSION_TIMEOUT_ADMIN + 900)) {
        $SESS_LIFE = (SESSION_TIMEOUT_ADMIN + 900);
      }
    } else {
      if (!$SESS_LIFE = get_cfg_var('session.gc_maxlifetime')) {
        $SESS_LIFE = 900;
      }
    }