Comment récupérer des informations de formulaire pour une page Web dans Firefox

26

J'ai rempli un long formulaire sur une page Web qui a rejeté ma soumission en raison d'une erreur de serveur. Je n'arrive pas à récupérer l'entrée du formulaire.

Existe-t-il un moyen dans Firefox de consulter les caches, l'historique, etc. pour récupérer ces informations?

Jason S
la source

Réponses:

5

Je vous recommande d'installer Lazarus - il a sauvé mes fesses assez de fois.

Sathyajith Bhat
la source
3
Lazare est prometteur. Mais, hélas, Lazare est mort (!). Lazarus ne fonctionne pas. Le formulaire de contact sur le site est cassé. Et le développeur ne répond pas.
Nicolas Barbulesco
De plus, Lazarus est en conflit avec Firebug.
Tomáš Zato - Reinstate Monica
Certes, il est "mort", et le développeur semble être MIA, mais cela fonctionne toujours pour moi.
Animadversor
@Animadversor Il ne fonctionne plus dans Firefox v53, en raison d'une incompatibilité (comme signalé par Firefox au démarrage).
David Balažic
2
Les outils "économiseur de formulaire" comme Lazarus doivent être installés avant de perdre des données, pas après. OP demande de récupérer les données perdues.
user598527
6

Ouf! J'ai trouvé une solution - j'ai pu appuyer sur le bouton "Précédent" et "Suivant" avec l' extension " Live HTTP Headers " capturant le trafic entrant / sortant, et les informations du formulaire faisaient partie d'une réponse POST. (Firefox renverra l'entrée du formulaire, pas sûr de l'endroit où il est stocké, mais n'a aucun moyen intégré évident de l'afficher aux utilisateurs)

Jason S
la source
2
Je pense qu'il est stocké dans la RAM, car vous pouvez appuyer sur "Retour" pour revenir au formulaire avec vos données remplies, mais je n'ai jamais entendu parler de Firefox restaurant ces valeurs de formulaire après avoir fermé et redémarré le navigateur.
David Z
Vous voudrez peut-être avoir Lazarus [ addons.mozilla.org/en-US/firefox/addon/6984 ] installé, si quelque chose comme ça se produit à nouveau.
Sathyajith Bhat
@Sathya: envisagez de publier une réponse distincte, je voterais pour elle.
Jason S
1
Peut-être que ce n'était pas vrai il y a trois ans, mais les outils de développement Web intégrés de Firefox disposent actuellement d'installations qui vous permettent d'extraire les informations de la même manière. Je viens de répondre ici .
sh1
1
J'ai une autre idée. Rechargement de la page, avec examen des en-têtes ... Je vais la poster comme réponse.
Nicolas Barbulesco
5

Ma méthode a été testée dans un cas d'urgence (commentaire Facebook perdu). Il a besoin d'un outil tiers - ProcessHacker . C'est seulement pour Windows - pour une méthode Linux, vérifiez cette question . Cela devrait fonctionner avec tous les navigateurs, pas seulement Firefox .

Il y a deux façons. Le premier est plus convivial , mais si le PC tombait en panne, vous perdriez des données. Le second est plus sûr , mais nécessite un outil supplémentaire. Avec le second, vous obtiendrez un fichier que vous pouvez remettre à un expert, si ce tutoriel était trop difficile. Vous pouvez faire la voie II, les étapes 1 et 2 pour être en sécurité, puis la voie I pour le rendre plus facile. J'ai utilisé la voie I.

C'est la liste exacte des mesures que j'ai prises:

Comme je

  1. La première chose à faire est de suspendre le processus. Ceci est essentiel au succès . J'ai ouvert ProcessHacker (PH), trouvé firefox.exe sur la liste (vous pouvez cliquer sur la colonne "Nom" pour vous débarrasser de l'arborescence et obtenir une vue de liste) et dans le menu contextuel j'ai utilisé "Suspendre". Ensuite, il semblerait que Firefox soit figé, donc si Windows vous demande de terminer le processus qui ne répond pas, ne le faites pas! Il est vivant, juste endormi.

  2. Double-cliquez sur la ligne firefox.exe ou choisissez «Propriétés» dans le menu contextuel de firefox.exe.

  3. Allez dans l'onglet "Mémoire" et cliquez sur le bouton "Chaînes ..." dans le coin supérieur droit.

  4. J'ai utilisé les paramètres par défaut ([✓] est cochée, [] n'est pas cochée) - Min. len .: 10; [✓] Détecter Unicode; Rechercher dans [✓] Privé / [] Image / [] Mappé. Cliquez sur le bouton "OK".

  5. Après un certain temps (jusqu'à une minute, mais probablement quelques secondes), toutes les chaînes seraient trouvées. Avec de tels paramètres, j'ai maintenant plus de 700k chaînes. Vérifiez tous ceux qui recherchent le texte perdu . Je rigole! Passez au point suivant :)

  6. Cliquez sur le "Filtre" en bas à gauche et choisissez l'élément de menu qui vous convient le mieux. J'ai utilisé "Contient (insensible à la casse)".

  7. Entrez un mot qui était dans votre texte perdu. Word car certaines chaînes peuvent être enregistrées, par exemple, sous la forme " foo bar". Plus le mot est long et unique, moins vous obtiendrez de résultats (ce sera donc plus facile). Si vous n'obtenez pas de résultats, essayez un autre mot. J'ai eu mon commentaire dans deux parties de la mémoire - dans l'une, elle était pleine, dans l'autre juste la seconde moitié.

  8. Regardez les résultats. La plupart des chaînes seront visibles avec un caractère nul après chaque caractère, par exemple, foobarsera f.o.o.b.a.r(hex 66 00 6F 00 6F 00 62 00 61 00 72). Ne vous en faites pas; c'est le truc Unicode. Si vous trouvez votre texte, cliquez sur le bouton "Enregistrer ...". Mon commentaire était à la recherche comme une partie de HTML, par exemple, il avait <div>et <span>balises autour.

  9. Ouvrez le fichier enregistré dans un éditeur prenant en charge Unicode. Je ne connais pas le bloc-notes intégré, mais cela devrait fonctionner. J'ai utilisé Notepad ++.

  10. Trouvez le texte, copiez la partie nécessaire. Dites "hourra". Vous pouvez maintenant cliquer avec le bouton droit sur la ligne firefox.exe dans la fenêtre principale et choisir "Reprendre".

Voie II

  1. Répétez l'étape 1 de la voie I.
  2. Trouvez la ligne firefox.exe, faites un clic droit dessus et choisissez "Créer un fichier de vidage ..." dans le menu contextuel.
  3. Utilisez un éditeur qui prend en charge le chargement de gros fichiers. Notepad ++ devrait le gérer, mais vous devez désactiver la coloration syntaxique et la vérification orthographique. Exemples: HxD (freeware, IMO mieux), wxHexEditor (FLOSS).
  4. Passez à l'étape 10 de la voie I.
Krzysiu
la source
Approche intelligente! Cela n'a pas fonctionné pour moi aujourd'hui (ne faites jamais de longues modifications dans l'outil en ligne de Gitlab ...) mais je garderai la technique (et le bel outil ProcessHacker) sous l'oreiller.
Vous pouvez créer un fichier de vidage à partir du Gestionnaire des tâches, voir cette réponse . Donc pas besoin d'un outil tiers comme ProcessHacker.
David Balažic
Merci, David. Je pense toujours que l'on devrait suspendre le processus dès que possible et répondre que vous avez lié ne dit rien à ce sujet. En cas d'erreur, la suspension aiderait beaucoup. Il y a aussi une fonction de recherche de chaînes dans PH. Comme les caractères sont souvent remplis avec 00h (null), vous avez toujours besoin d'un éditeur pour trouver du texte (le Bloc-notes ne fera pas l'affaire), donc pas entièrement "sans tiers". Pendant ce temps, j'ai perdu les commentaires YouTube et Disqus (c'est-à-dire les pages JavaScript et dynamiques lourdes) - cela a fonctionné à nouveau, mais ce n'est pas une méthode sûre à 100%, comme le montre Tibo.
Krzysiu
S'il y a plusieurs processus Chrome en cours d'exécution, existe-t-il un moyen de savoir avec lequel nous devrions travailler?
JinSnow
1
Quelle excellente réponse. Merci de m'avoir présenté ProcessHacker. Je n'ai pas trouvé ce que je cherchais avec les paramètres de filtre par défaut, mais j'ai réussi en cochant toutes les cases. Bien sûr, les résultats de recherche ont considérablement augmenté, mais l'application de plusieurs filtres successifs l'a réduit. Ah, ça m'a évité de réécrire certains e-mails perdus. (+1)
Noël linéaire le
3

Les versions modernes de Firefox ont des outils de développement à bord qui peuvent être utilisés pour cela. Appuyez sur Ctrl+ Shift+ Qpour afficher l'outil Réseau, appuyez sur F5pour recharger la page (confirmez l'avertissement que le contenu sera soumis à nouveau, nous voulons exactement que cela se produise) et sélectionnez la ligne (probablement) la plus haute de l'outil Réseau. Cela devrait apparaître POSTcomme méthode.

Sur le côté droit, un ensemble d'onglets apparaît. Celui qui nous intéresse, "En-têtes", devrait déjà être ouvert. Cliquez Edit and Resendpour obtenir le contenu complet de la demande. Le champ Corps de la demande contient les données complètes de la demande sous forme encodée en URL. Exécutez-le via un décodeur comme celui-ci pour récupérer vos données.

Roland W
la source
1
Exactement ça. Remarque: certains sites Web codent le contenu différemment, dans mon cas, il a remplacé les espaces par + et les nouvelles lignes par \ r \ n.
user31389
2

Une autre solution possible pour récupérer vos données est de faire un vidage de mémoire de Firefox (en supposant que vous l'utilisez sous Linux ou similaire). Voir cette réponse pour plus de détails: /superuser//a/236400/180675

erik
la source
2

J'ai trouvé un nouvel addon qui peut être utilisé pour récupérer les postdata perdues: Form History Control

L'auteur affirme:

Ce plugin stocke également le texte des champs de l'éditeur au fur et à mesure que vous tapez, vous n'avez donc jamais à perdre votre travail en cas de catastrophe. Récupérez votre travail perdu après les délais d'expiration de session, les pannes de réseau, les pannes de navigateur, les pannes de courant et toutes autres choses qui détruiront le travail acharné que vous venez de consacrer à la rédaction de cet e-mail, essai ou article de blog important.

EDIT: Oh, il a en effet enregistré ce message. :)

Calmarius
la source
Cette extension est une (très) belle idée. Mais c'est trop compliqué. Cette extension dit fièrement qu'elle "texte enregistré automatiquement entré sous n'importe quelle forme". Enregistre-t-il les données saisies par l'utilisateur "modifiables"? Par exemple, Disqus comments et Wikipedia WYSIWYG edits.
Nicolas Barbulesco
@NicolasBarbulesco Je ne sais pas, essayez-le, puis dites au développeur si cela ne fonctionne pas. Je suppose que cela ne fonctionne que pour les champs d'entrée et de zone de texte et pour les postdonnées. La principale raison pour laquelle je l'ai téléchargé parce que de nombreux forums stupides vous déconnectent simplement si vous écrivez un article trop longtemps, mangeant votre écriture entière ...
Calmarius
1

J'ai peur que le contenu du formulaire ne soit pas mis en cache ... Les champs de saisie réguliers (une seule ligne) peuvent être enregistrés avec le remplissage automatique , mais pas les zones de texte (plusieurs lignes, celle que vous avez probablement tapée).

BloodPhilia
la source
1

Le navigateur Web a définitivement les données du formulaire en mémoire. La difficulté est la suivante: comment récupérer ces données?

Voici mon idée. Je ne l'ai pas essayé. Sur le papier , ça marche. Cette réponse s'applique à Firefox et aux autres navigateurs Web.

En bref: rechargez la page, tout en examinant les en-têtes.

  1. Installez la machinerie. Nous avons besoin d'un mécanisme pour examiner le trafic HTTP envoyé par le navigateur Web.
    • Le meilleur choix est l'extension  LiveHTTPHeaders pour Firefox. Mais je pense que l'installation de cette extension nécessite un redémarrage de Firefox. Ne redémarrez pas Firefox, bien sûr! Ce serait bien de pouvoir installer cette machine sans redémarrer Firefox. Sinon, il vous suffit d'avoir préalablement installé cette extension. Si besoin, utilisez simplement une machine à remonter le temps . ;-)
    • Si vous ne pouvez pas avoir la machine prête dans le navigateur Web, il existe une autre option. Cette option est plus lourde. Mais sa grande force est qu'il fonctionne pour tous les navigateurs Web et sans les redémarrer. Installez un simple serveur Web ou configurez un serveur proxy (comme Squid) sur votre ordinateur. Assurez-vous que votre serveur enregistre le trafic entrant, avec les en-têtes complets. Et placez une règle dans le système d'exploitation pour rediriger toutes les demandes sortantes vers  127.0.0.1. Cela peut être fait avec un hosts fichier.
  2. Testez la machinerie. Créez une nouvelle fenêtre dans votre navigateur Web. Écrivez du texte dans Wikipedia ici et cliquez sur Aperçu . Vérifiez ensuite que dans votre machine, vous voyez votre texte écrit. Si votre machine est l'option serveur, vous devez désactiver la règle de redirection pour charger le formulaire Wikipédia et l'activer ensuite.
  3. Pour recharger la page, cliquez avec le bouton droit sur l'emplacement du formulaire et choisissez Recharger . C'est important. Dans certains webmails, cela ne rechargera que le cadre où se trouvait le formulaire. Ici, nous voulons recharger le moins possible. Si vous cliquez sur le bouton  Recharger dans la barre d'adresse ou dans la barre de boutons, ou si vous appuyez sur Apple R, vous risquez de recharger toute la page, et dans certains webmails, cela vous tire une balle dans le pied.
  4. Normalement, le navigateur Web vous demandera: Voulez-vous renvoyer les données du formulaire? Si vous obtenez cette question, c'est un bon signe. Choisissez à nouveau envoyer .
  5. Examinez les données POST envoyées , avec la machinerie configurée à l'étape 1. Vous trouverez ici vos données souhaitées.
  6. Venez nous dire ici que cette solution a fonctionné!
Nicolas Barbulesco
la source
Cela doit être mis à jour, utilisez maintenant les outils de développement au lieu d'installer des extensions.
user31389
1

*** Correction: bien que ce qui suit fonctionne dans Firefox et Chrome, l'instantané dans Firefox produit un fichier binaire (gzip'd). Donc pour l'instant cette approche ne fonctionne que dans Chrome: (

Pour les deux Firefox et Chrome, je pense que d' une manière beaucoup plus facile par rapport à une décharge de base réelle d'un processus de système consiste à utiliser les outils de développement.

Accédez à l' onglet Mémoire (anciennement appelé "Profils" dans Chrome), puis prenez un instantané et enregistrez-le dans un fichier (c'est juste du texte). Recherchez ensuite dans le fichier un mot que vous savez que vous avez écrit dans votre formulaire - c'est probablement le moyen le plus rapide pour trouver le contenu entier.

Capture d'écran des outils de développement Firefox - onglet Mémoire

Je viens de le tester sur Chrome dans une page où une forme dynamique (JavaScript) s'est gâchée d'elle-même et a perdu tout le texte que j'avais écrit. Il était encore en mémoire et je pourrais le récupérer même si je ne l'avais pas encore soumis!

Voir https://developer.mozilla.org/en-US/docs/Tools/Memory et https://developers.google.com/web/tools/chrome-devtools/memory-problems/heap-snapshots pour plus de détails.

Kamal
la source
dans Firefox, le fichier est simplement compressé avec gzip, donc un simple zcat xxx.fxsnapshotvous permet d'obtenir le contenu.
vaab
1
Merci @vaab c'est en effet gzip'd, mais après décompression c'est toujours un fichier binaire. gunzip -c(équivalent à zcat sur Mac) a renvoyé principalement des points d'interrogation ... J'ai couru stringsdessus et j'ai pu obtenir des informations, mais je ne sais pas si un contenu complet pourrait être récupéré de cette façon.
Kamal