I filled out a lengthy form on a webpage which rejected my submission due to a server error. I can't seem to recover the form input.
Is there any way in Firefox to look into caches, history, etc. to recover this information?
Super User is a question and answer site for computer enthusiasts and power users. It only takes a minute to sign up.Sign up to join this community
I'd recommend you to install Lazarus - it has saved my butt enough number of times.
My method was tested in an emergency case (lost Facebook comment). It needs a third party tool – ProcessHacker. It's only for Windows – for a Linux method, check that question. It should work with every browser, not only Firefox.
There are two methods. First is more user friendly, but if PC would crash, you'd lose data. Second is more fail-safe, but needs an additional tool. With second you'd get a file you can give to some expert, if that tutorial would be too difficult. You can do Method II, steps 1&2 to be safe and then Method I to make it easier. I used Method I.
That's the exact list of steps I took:
The first thing to do is to pause the process. This is critical for success. I opened ProcessHacker (PH), found firefox.exe on the list (you can click on the "Name" column to get rid of the tree view and get a list view) and from the context menu I used "Suspend". Then it would look like Firefox is frozen, so if Windows would ask you about terminating not responding process, don't do it! It's alive, just sleeping.
Double click on the firefox.exe row or choose "Properties" from the context menu of firefox.exe.
Go to the "Memory" tab and click on the "Strings..." button in the top-right corner.
I used default settings ([✓] is checked checkbox, [ ] is unchecked) – Min. len.: 10; [✓] Detect Unicode; Search in [✓] Private / [ ] Image / [ ] Mapped. Click on the "OK" button.
After a while (up to minute, but probably a few seconds) you'd get all strings found. With such settings I've now over 700k strings. Check every one searching for the lost text. Just kidding! Go to the next point :)
Click on the bottom-left "Filter" and choose menu item that fits you the best. I used "Contains (case insensitive)".
Enter some word that was in your lost text. Word because some strings could be saved, e.g., as "
foo bar". The longer and more unique word, the fewer results you'd get (so it will be easier). If you don't get results, try another word. I had my comment in two parts of the memory – in one it was full, in other just second half.
Look through the results. Most strings will be visible with null character after every char, e.g.,
foobar will be
66 00 6F 00 6F 00 62 00 61 00 72). Don't worry about it; it's the Unicode thing. If you'd find your text click on the "Save..." button. My comment was looking like part of HTML, i.e., it had
<span> tags around.
Open the saved file in an editor that supports Unicode. I don't know about built-in Notepad, but it should work. I used Notepad++.
Find the text, copy the needed part. Say "hooray". You may now right click on firefox.exe row from the main window and choose "Resume".
Whew! I figured out a solution -- I was able to hit the "back" and "forward" button with the "Live HTTP Headers" extension capturing incoming/outgoing traffic, and the form information was part of a POST response. (Firefox will resend form input, not sure where that's stored, but doesn't have any obvious built-in way to display it to users)
I found a new addon that can be used to recover lost postdata: Form History Control
The author claims:
This plugin also stores text from editor fields as you type, so you never have to loose your work when disaster strikes. Recover your lost work after session timeouts, network failures, browser crashes, power failures and all other things that will destroy the hard work you just put into writing that important email, essay or blog post.
EDIT: Oh, it indeed saved this post. :)
Modern versions of Firefox have Developer Tools on board that can be used for this. Press Ctrl+Shift+E (before Firefox 55: Ctrl+Shift+Q) to bring up the Network tool, press F5 to reload the page (confirm the warning that the content will be resubmitted, we want exactly this to happen) and select the (probably) topmost line in the Network tool. It should show
POST as method.
On the right-hand side a set of tabs appears. The one we are interested in, "Headers", should already be open. Click
Edit and Resend to get the full request contents. The Request Body field contains the full request data in url-encoded form. Run it through a decoder like this one to get your data back.
Another possible solution to recover your data is to make a core dump of Firefox (assuming you are using it under Linux or similar). See this answer for more details: https://superuser.com/a/236400/180675
I'm afraid form contents aren't cached... Regular input fields (single line) may be saved with auto fill, yet text area's (multiple lines, the one that you probably typed in) aren't.
The Web browser definitely has the form data in memory. The difficulty is : How to retrieve this data ?
Here is my idea. I have not tried it. On paper, it works. This answer applies to Firefox and to other Web browsers.
In short : Reload the page, while examining the headers.
127.0.0.1. This can be done with a
*** Correction: although the below does work in Firefox and Chrome, the snapshot in Firefox produces a (gzip'd) binary file. So for now this approach works only in Chrome : (
For both Firefox and Chrome, I think a much easier way compared to an actual core dump of a system process is to use Developer Tools.
Go to the Memory tab (used to be named "Profiles" in Chrome), then take a Snapshot and save it to a file (it's just text). Then search the file for some word that you know you had written in your form – that's probably the fastest way to find the entire content.