Sauvegarde formulaire non complet

Sauvegarde formulaire non complet - PHP - Programmation

Marsh Posté le 10-07-2006 à 11:55:47    

Bonjour,
 
J'aimerai savoir si il serait possible de sauvegarder un formulaire en PHP, par exemple quelqu'un rentre son nom, prenom, etc..., tappe un commentaire et pour X-raison, il ne le fini pas, comment pourrais-ton sauvegarder ce qu'il a deja tappé.
J'ai deja posté ca genre de question mais rien n'etait convainquant, donc je réitère...
J'ai cherché sur google, certains disent qu'il vaut mieux sauvegarder les données en Javascript avec setCookie(), d'autres disent qu'il vaut mieux stocker les inputs et textareas dans un fichier, mais ca m'a l'air assez galère et long à faire.
Des idées ou suggestions ?
 
Merci  :bounce:


Message édité par krovomi le 10-07-2006 à 11:56:19
Reply

Marsh Posté le 10-07-2006 à 11:55:47   

Reply

Marsh Posté le 10-07-2006 à 12:01:31    

Pour cela on utilise les sessions. Tu dois avoir un tutorial là dessus dans phpdebutant [:spamafote]

Reply

Marsh Posté le 10-07-2006 à 12:03:01    

hum certes, mais est-ce la meilleure facon de proceder ?

Reply

Marsh Posté le 10-07-2006 à 12:13:31    

lire le tutorial :o
edit: xcuse j'ai lu "Quelle est la façon de procéder" ...
Oui c'est la meilleure ( pour pas dire l'unique ... remarque non on peut aussi tout sauver dans une bdd ...).

Message cité 1 fois
Message édité par anapajari le 10-07-2006 à 12:14:58
Reply

Marsh Posté le 10-07-2006 à 12:18:07    

bon après lecture plus approfondie de ton topic, le problème n'est pas tellement sur la façon de stocker les données mais sur le fait de sauvegarder quoi qu'il se passe les données de l'utilisateur.
Donc si c'est vraiment ce que tu désires, tu ne vas pas avoir le choix, il te faut mettre un timer en js qui déclenche la sauvegarde de tes infos.
Lors du déclenchement de ce timer tu as plusieurs solutions:
- full js : sauvegarde des infos dans un cookie
- via xmlHttpRequest: envoi des informations au serveur, sauvegarde en php dans une session ou une bdd ( en fait je conseillerais le bdd vu que si le mec se barre de ton site, la session ... )

Reply

Marsh Posté le 10-07-2006 à 12:22:28    

anapajari a écrit :

lire le tutorial :o
edit: xcuse j'ai lu "Quelle est la façon de procéder" ...
Oui c'est la meilleure ( pour pas dire l'unique ... remarque non on peut aussi tout sauver dans une bdd ...).


ben ça dépend.
 
les sessions, c'est cool qui le gars ne arrête la saisie 5 minutes, et reviens sans avoir quité le site...
-- edit --
"c'est cool qui le gars ne arrête la saisie 5 minutes" => en langage humain ça veut dire "c'est cool si le gars n'arrête la saisie que pendant 5 minutes"
 
 
pour moi, la meilleur solution, c'est foutre en cookie avec une durée de vie de quelques jours.
comme ça, s'il reviens le lendemain, il a toujours son formulaire pré-rempli.
 
mettre en bdd c'est cool, sauf que sans identifiant pour reconnaître le gars, t'es mal, donc dans tous les cas il te faudra un cookie pour reconnaitre le gars. sans compter que tu vas stocker pour rien tous les formulaire à moitié rempli des dizaines de personnes qui ne finirons jamais de le remplir


Message édité par Arjuna le 10-07-2006 à 12:24:35
Reply

Marsh Posté le 10-07-2006 à 12:25:20    

et sinon, onunload() du window est ton amis pour déclencher l'enregistrement de ce cookie. pas besoin de faire un timer ;)

Reply

Marsh Posté le 10-07-2006 à 12:33:05    

oui mon probleme est que si ca se trouve le mec en question peut faire son compte rendu, le sauvegarder et revenir 10 jours apres, donc comme tu le dis Arjuna, la session ne servirait plus a rien, donc je pense que je vais voir du coté des cookies.
 
Et merci pour la fonction onunload(), je vais aller jeter un oeil :)

Reply

Marsh Posté le 10-07-2006 à 12:41:25    

Arjuna a écrit :

et sinon, onunload() du window est ton amis pour déclencher l'enregistrement de ce cookie. pas besoin de faire un timer ;)


onBeforeUnload would be better :o ( et oui ça marche sous FF).
 
Pour les cookie, je suis a moitié d'accord. Perso je vide tous mes cookie tous les jours [:spamafote]
Pour krovomi, j'imaginais que le mec s'était loggué sur son site et qu'il pouvait ainsi l'identifier :o
 

Reply

Marsh Posté le 10-07-2006 à 12:46:31    

bah je peux l'identifier, mais de toute facon, le module que je fais pour les utilisateurs concernés(pharmaciens) n'y connaissent rien et par consequent ne virent pas leurs cookies donc du coup, je pense qu'il n'y a pas de pb :)

Reply

Marsh Posté le 10-07-2006 à 12:46:31   

Reply

Marsh Posté le 10-07-2006 à 12:46:42    

vu qu'il parle de saisir le nom et le prénom, j'en déduis que l'utilisateur est anonyme, sinon c'est récupéré de son profile ;)

Reply

Marsh Posté le 10-07-2006 à 13:23:37    

ah non c'est saisir des champs indifferement de la personne s'etant loggué auparavant, la il s'agit de remplir un compte_rendu, par exemple : le nom, prenom et divers champs concernant des contacts + des commentaires sur la personne ainsi qu'autres divers commentaires, mais une personne ne peut laisser de commentaires que si elle s'est au préalable identifiée.
Je ne pense pas que ca change grand chose, si ?

Reply

Marsh Posté le 10-07-2006 à 14:48:05    

ben si, du coup tu peux stocker les brides du formulaire en bdd.
 
par contre, t'es baisaide pour le coup du onbeforeunload : t'auras pas le temps de déclencher un évènement côté serveur. du coup, tu seras obligé de faire un timer, avec tous les problèmes induits. (navigateur qui passe son temps à faire "tic tic tic", dernières modifs perdues si on quitte la page avant un tic, etc.)


Message édité par Arjuna le 10-07-2006 à 14:48:27
Reply

Marsh Posté le 10-07-2006 à 14:59:53    

et en gros que me conseilles tu de faire alors ?

Reply

Marsh Posté le 10-07-2006 à 15:20:10    

moi je pense que le cookie c'est ce qu'il y a de plus simple, et au moins tu stockes pas des infos inutiles sur le serveur.
par contre, le gars ne dois pas changer de pc en cours de route, et personne ne doit utiliser son pc du coup (sinon il retrouve les infos de son formulaire)

Reply

Marsh Posté le 10-07-2006 à 15:25:58    

ok, merci pour ta reponse ;)

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed