IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langage PHP Discussion :

Perte de la session


Sujet :

Langage PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Janvier 2009
    Messages
    7
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2009
    Messages : 7
    Par défaut Perte de la session
    Bonjour,

    Alors voilà, je me heurte à un problème que je n'avais encore jamais rencontré, ainsi je viens vous demander votre aide.

    Actuellement, je développe un site de réservation pour ma boîte.
    J'enregistre toutes les informations concernant la réservation dans les variables de sessions.

    Afin d'éviter que les utilisateurs ne sautent des étapes dans la réservation ( ordre défini par ma boîte ), j'enregistre la page courante dans une variable de session et je vérifie si la page que l'utilisateur souhaite atteindre est "autorisée".

    Petit schéma :

    page 1 => page 2 => page 3 => page 4 => paiement en ligne ( serveur externe ) => page 5

    On ne peut atteindre la page 3 sans au préalable avoir rempli les informations de la page 1 et 2.
    Si on se trouve sur la page 4, on peut retourner sur n'importe quelle page qui lui est "inférieure" ( soit la 1, 2 ou 3 ).

    Dans la dernière phase de réservation, je redirige certaines des informations via POST vers un serveur de paiement en ligne ( qui n'appartient pas à ma boîte ).
    Le serveur de paiement reçoit bien les informations envoyées par POST.
    Après avoir entré ses informations bancaires, qu'importe le résultat, l'utilisateur est redirigé vers le site de réservation.

    Mais une fois revenu vers le site de réservation, les variables de sessions n'existent plus ( tout a été réinitialisé et/ou détuit par je ne sais quel moyen ).
    Et du coup, le site de réservation considère qu'aucune des étapes n'a été validé par le client et le redirige vers la première étape.

    Est ce "normal"?
    Est ce une erreur de programmation de ma part?
    Que puis je faire dans ce genre de situation?

    Merci d'avance.

  2. #2
    Membre éclairé
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Janvier 2009
    Messages
    351
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Janvier 2009
    Messages : 351
    Par défaut
    Bonjour,

    C'est normal car au moment où la page est redirigée vers une page avec un nom de domaine différent, la session est supprimée. Les sessions ne marchent que sur le même domaine.

    La solution est de transférer ta session en utilisant le code suivant :

    Envoi ton id de session en faisant quelque chose comme...https://secure.bidule.com/~$user_name/transfer.php?sID=<?php echo session_id();?>

    Et à l'intérieur de ce fichier, met ce code PHP au début :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    session_id($_GET['sID']);
    session_start();
    header("Cache-control: private");
    Puis ce code HTML

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    <html>
    <head>
    <META HTTP-EQUIV="Refresh" CONTENT="0;URL=https://secure.bidule.com/~$user_name/">
    </head>
    <body>
    </body>
    </html>

  3. #3
    Membre du Club
    Profil pro
    Inscrit en
    Janvier 2009
    Messages
    7
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2009
    Messages : 7
    Par défaut
    Bonjour, merci de t'interesser à mon problème.

    Alors si j'ai bien compris, ce morceau de code suivant est censé être inséré dans le script php du serveur de paiement en ligne?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    session_id($_GET['sID']);
    session_start();
    header("Cache-control: private");
    Si c'est le cas, alors je ne peux malheureusement pas mettre ta méthode en place parce que le serveur de paiement en ligne réagit de cette manière ci :

    - mon site de réservation envoie des informations sur le serveur de paiement en ligne
    - le serveur de paiement en ligne analyse les informations et attends les données bancaires qui doivent être saisies par le client
    - le serveur de paiement en ligne vérifie l'existance des identifiants bancaires dans sa base de données
    - le serveur de paiement informe le client de la suite des évènements et redirige ensuite vers mon site de réservation

    Chaque tiret correspond à un script php, et aucun des scripts du serveur de paiement en ligne ne sont modifiables ( parce que ce ne sont pas les miens et qu'en plus, si c'était le cas, ce serait trop facile ).

    Je pensais que la session n'était détruite que lorsque l'utilisateur fermait son navigateur et/ou la supprimait à la mano ( via un lien ou quelque chose dans le genre ).

    __________

    Toutefois, je ne peux m'empêcher de remarquer que cette tournure me semble étrange...

    J'apporte un peu plus de précision au cas actuel ( ça peut peut être aider ).
    Le site de réservation actuel ainsi que le serveur de paiement sont des sites hébergés sur et par le Maroc.

    Il y a peu, j'avais développé exactement le même site mais en France cette fois ci avec le Crédit Mutuel et je n'ai eu aucun problème de ce genre...
    J'arrivais à rediriger des informations de mon site vers le CM et le CM me retournait bien mes informations sans détruire aucune des données présentes dans ma session...

  4. #4
    Membre éclairé
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Janvier 2009
    Messages
    351
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Janvier 2009
    Messages : 351
    Par défaut
    Bonjour,

    Quel est exactement le système de payement que tu utilise ?

  5. #5
    Membre du Club
    Profil pro
    Inscrit en
    Janvier 2009
    Messages
    7
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2009
    Messages : 7
    Par défaut
    Actuellement, j'utilise le système de vérification de données bancaires du site maroctelecommerce.com .

  6. #6
    Membre éclairé
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Janvier 2009
    Messages
    351
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Janvier 2009
    Messages : 351
    Par défaut
    Il faudrait avant tout savoir quel est le processus exact de leur système de payement. Pour cela je suis allé voir sur leur site mais il y a très peu d'infos techniques. Avec un compte chez eux je suppose que tu dois avoir accès au back-office sur lequel il doit y avoir plus d'infos. Si ça n'est pas le cas, je pense que le mieux pour toi serait de les contacter directement.
    Navré de ne pouvoir faire plus pour t'aider, bon courage.

    Ps: Et si tu réussis à avoir plus d'infos, n'hésites pas à les poster, ça pourra servir pour d'autres utilisateurs.

Discussions similaires

  1. Perte variable de session
    Par FoxDeltaSierra dans le forum ASP.NET
    Réponses: 8
    Dernier message: 21/01/2009, 17h17
  2. Perte de la session au rafraichissement de la page
    Par potpot06 dans le forum Langage
    Réponses: 4
    Dernier message: 08/01/2009, 16h10
  3. Réponses: 19
    Dernier message: 24/04/2008, 20h02
  4. Perte de variables session avec IE6.0.28
    Par tom42 dans le forum Langage
    Réponses: 1
    Dernier message: 12/03/2007, 17h43
  5. [AJAX/JSP] Perte de la session et de response sous IE
    Par maxbzh56 dans le forum Général JavaScript
    Réponses: 3
    Dernier message: 21/08/2006, 11h04

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo