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 :

Session perdue ? ou données perdues ?


Sujet :

Langage PHP

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Octobre 2008
    Messages
    48
    Détails du profil
    Informations personnelles :
    Localisation : France, Nord (Nord Pas de Calais)

    Informations forums :
    Inscription : Octobre 2008
    Messages : 48
    Points : 40
    Points
    40
    Par défaut Session perdue ? ou données perdues ?
    Bonjour,

    je m'occupe d'un site dont le principe est qu'un utilisateur remplisse un formulaire (plus ou moins long....je gère environ 50 formulaires dont l'id est toujours identique).

    L'utilisateur a alors 2 options :
    * enregistrer sa saisie pour l'a reprendre plus tard
    * envoyer le formulaire => ce qui a pour effet d'enregistrer la saisie, et de générer un pdf

    Depuis quelques jours, j'ai des utilisateurs qui indiquent que lors de l'enregistrement, les données ne sont pas sauvegardées, et qu'à la reprise du formulaire, leur saisie est absente.

    J'étais partie sur une perte de réseau chez la personne, et certains m'ont confirmés avoir des problèmes internet.

    Mais cela fait déjà 6 personnes qui ont rencontrés le problème...et je ne vois pas trop ou trouver la cause dans le code php ?

    J'utilise les sessions Php et elles ont été portées à 3h00 de durée de vie....mais j'imagine qu'une fois la perte réseau effectuée (avant ces 3h00), la session n'existe plus, je me trompe ?

    Ce qui fait que si l'utilisateur clic sur "enregistrer", ça enregistre du vide car en début de traitement, je mets $_POST dans une session de sauvegarde.

    Si vous avez déjà été confronté à ce genre de problématique, qu'avez-vous fait pour résoudre ce problème, ou que me conseilleriez-vous ?

    (j'avais pensé à vérifier que la session soit toujours active, du genre if(isset($_SESSION['truc']) mais finalement, si la session n'existe plus, la perte de données sera toujours effective.)

    (j'avais aussi exploré la piste d'une sauvegarde locale, mais comme tous mes formulaires ont leur id identiques, je ne vois pas comment faire)

    Merci

  2. #2
    Membre éclairé Avatar de Geoffrey74
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mars 2007
    Messages
    515
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mars 2007
    Messages : 515
    Points : 760
    Points
    760
    Par défaut
    Bonjour,

    si ton utilisateur ferme le navigateur internet, les sessions sont vidées ! De même avec une navigation privée et une fermeture de l'onglet.

    Enregistre les données temporaires dans un fichier texte, avec comme nom un id unique (généré avec uniqid() par exemple) et stock cette id dans un cookie.
    Ainsi, si l'utilisateur reviens sur le formulaire, tu vérifie l'existance du cookie, et récupère les données du fichier texte pour pré-remplir les champs.

    Attention, cela ne fonctionnera pas c'est une navigation privée (les cookies sont supprimés), où si l'utilisateur supprime ses cookies automatiquement.
    Mais cela fonctionnera dans la majorité des cas.

  3. #3
    Membre du Club
    Profil pro
    Inscrit en
    Octobre 2008
    Messages
    48
    Détails du profil
    Informations personnelles :
    Localisation : France, Nord (Nord Pas de Calais)

    Informations forums :
    Inscription : Octobre 2008
    Messages : 48
    Points : 40
    Points
    40
    Par défaut
    merci pour ce tuyau, je n'avais pas pensé au cookie.

    Avec une perte de connexion internet, sans fermeture du navigateur, la session est perdue aussi ?

  4. #4
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Points : 44 155
    Points
    44 155
    Par défaut
    Non, la session n'est pas liée à la connexion.

  5. #5
    Membre du Club
    Profil pro
    Inscrit en
    Octobre 2008
    Messages
    48
    Détails du profil
    Informations personnelles :
    Localisation : France, Nord (Nord Pas de Calais)

    Informations forums :
    Inscription : Octobre 2008
    Messages : 48
    Points : 40
    Points
    40
    Par défaut
    Citation Envoyé par sabotage Voir le message
    Non, la session n'est pas liée à la connexion.
    Mince, ça ne m'arrange pas finalement....comment expliquer que la saisie envoyée soit perdue ... j'y perds mon latin là..

    Le formulaire est bien enregistrée en BDD, mais tous les champs sont à 'zéro'....alors que je ne les initialises pas avec un zéro....

    Je gère les champs avec des "name" incrémentés....ils s'appellent vari (ou i est la valeur incrémentée)....et j'enregistre ça avec | en séparateur dans un seul champ d'une table en mysql.

    à la reprise d'un formulaire, je deserialize ce champ, et je ré-affecte aux bons input.

    Là, l'utilisateur se retrouve avec des zéro à la place de saisie.

  6. #6
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Points : 44 155
    Points
    44 155
    Par défaut
    Déjà sur la grammaire PHP, utilise un tableau var[i]. Ca se serialise pareil mais tu ne passeras pas par des manipulations de chaine et des séparateurs.

    Est-ce que tu arrives, toi, à reproduire le problème ?

  7. #7
    Membre du Club
    Profil pro
    Inscrit en
    Octobre 2008
    Messages
    48
    Détails du profil
    Informations personnelles :
    Localisation : France, Nord (Nord Pas de Calais)

    Informations forums :
    Inscription : Octobre 2008
    Messages : 48
    Points : 40
    Points
    40
    Par défaut
    Citation Envoyé par sabotage Voir le message
    Déjà sur la grammaire PHP, utilise un tableau var[i]. Ca se serialise pareil mais tu ne passeras pas par des manipulations de chaine et des séparateurs.

    Est-ce que tu arrives, toi, à reproduire le problème ?
    Merci pour le conseil...

    Non, pas moyen de reproduire ce satané problème....que ce soit en local, comme sur le serveur ovh.

    C'est d'autant plus étrange que depuis 2 mois, j'ai eu presque 7000 formulaires envoyés sans problèmes....et là, j'ai 7 personnes qui viennent de le rencontrer....

    Je vais essayé de voir si je peux logger des infos pour trouver la cause...

Discussions similaires

  1. MSSQL Server 2000: données perdues ?!
    Par alfadev dans le forum MS SQL Server
    Réponses: 7
    Dernier message: 23/04/2007, 14h48
  2. BCB 6.0 et MSSQLServer2000: données perdues!?
    Par alfadev dans le forum C++Builder
    Réponses: 1
    Dernier message: 18/04/2007, 17h17
  3. données perdues + fichier_backup.mdb
    Par LadyArwen dans le forum Access
    Réponses: 2
    Dernier message: 30/01/2007, 17h54
  4. Format de données perdu lors de requête création
    Par tsitua dans le forum Access
    Réponses: 2
    Dernier message: 24/05/2006, 13h03
  5. Données perdues sur disque dur esclave ?
    Par maadadi dans le forum Composants
    Réponses: 11
    Dernier message: 18/10/2005, 20h51

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