25

Я заполнил длинную форму на веб-странице, которая отклонила мою заявку из-за ошибки сервера. Я не могу восстановить форму ввода.

Есть ли способ в Firefox изучить кеши, историю и т.д., Чтобы восстановить эту информацию?

9 ответов9

6

Уф! Я нашел решение - я смог нажать кнопку "назад" и "вперед" с расширением « Live HTTP Headers », фиксирующим входящий / исходящий трафик, и информация о форме была частью ответа POST. (Firefox повторно отправит ввод данных формы, не зная, где он хранится, но не имеет очевидного встроенного способа отображения его пользователям)

5

Мой метод был протестирован в экстренном случае (потерян комментарий в Facebook). Для этого нужен сторонний инструмент - ProcessHacker. Это только для Windows - для метода Linux, проверьте этот вопрос. Он должен работать с любым браузером, а не только с Firefox.

Есть два способа. Во-первых, удобнее для пользователя, но если компьютер зависнет, вы потеряете данные. Второй более надежный, но нуждается в дополнительном инструменте. Со вторым вы получите файл, который вы можете передать какому-нибудь эксперту, если этот урок будет слишком сложным. Вы можете выполнить Путь II, шаги 1 и 2, чтобы быть в безопасности, а затем Путь I, чтобы сделать это проще. Я использовал Путь I.

Вот точный список шагов, которые я предпринял:

Как я

  1. Первое, что нужно сделать, это приостановить процесс. Это очень важно для успеха. Я открыл ProcessHacker (PH), нашел firefox.exe в списке (вы можете щелкнуть по столбцу "Имя", чтобы избавиться от древовидного представления и получить представление списка), и из контекстного меню я использовал "Приостановить". Тогда это выглядит так, как будто Firefox заморожен, поэтому, если Windows попросит вас прекратить не отвечающий процесс, не делайте этого! Он жив, просто спит.

  2. Дважды щелкните строку firefox.exe или выберите "Свойства" в контекстном меню firefox.exe.

  3. Перейдите на вкладку "Память" и нажмите кнопку «Струны ...» в правом верхнем углу.

  4. Я использовал настройки по умолчанию (флажок [& check;] установлен, флажок [] не установлен) - Мин. лен .: 10; [& check;] Определить Unicode; Поиск в [✓] Личное / [] Изображение / [] Сопоставлено. Нажмите на кнопку "ОК".

  5. Через некоторое время (до минуты, но, вероятно, через несколько секунд) вы найдете все найденные строки. С такими настройками у меня сейчас более 700к строк. Проверьте каждый, кто ищет потерянный текст. Просто шучу! Перейти к следующему пункту :)

  6. Нажмите внизу слева "Фильтр" и выберите пункт меню, который подходит вам лучше всего. Я использовал «Содержит (без учета регистра)».

  7. Введите слово, которое было в вашем потерянном тексте. Слово, потому что некоторые строки могут быть сохранены, например, как " foo bar ". Чем длиннее и уникальнее слово, тем меньше результатов вы получите (так будет проще). Если вы не получили результатов, попробуйте другое слово. У меня был свой комментарий в двух частях памяти - в одной это было полно, в другой только вторая половина.

  8. Посмотри результаты. Большинство строк будут видны с нулевым символом после каждого символа, например, foobar будет f.o.o.b.a.r (hex 66 00 6F 00 6F 00 62 00 61 00 72). Не беспокойся об этом; это вещь Unicode. Если вы найдете текст, нажмите кнопку «Сохранить ...». Мой комментарий выглядел как часть HTML, то есть вокруг него были теги <div> и <span> .

  9. Откройте сохраненный файл в редакторе, который поддерживает Unicode. Я не знаю о встроенном блокноте, но он должен работать. Я использовал Notepad++.

  10. Найдите текст, скопируйте нужную часть. Скажите "ура". Теперь вы можете щелкнуть правой кнопкой мыши строку firefox.exe в главном окне и выбрать "Продолжить".

Путь II

  1. Повторите шаг 1 из Пути I.
  2. Найдите строку firefox.exe, щелкните по ней правой кнопкой мыши и выберите «Создать файл дампа ...» в контекстном меню.
  3. Используйте некоторый редактор, который поддерживает загрузку больших файлов. Notepad++ должен с этим справиться, но вам нужно отключить подсветку синтаксиса и проверку орфографии. Примеры: HxD (бесплатная, лучше IMO), wxHexEditor (FLOSS).
  4. Переходите к шагу 10 из Пути I.
5

Я бы порекомендовал вам установить Lazarus - он сохранил мой приклад достаточно много раз.

3

Современные версии Firefox имеют инструменты разработчика, которые можно использовать для этого. Нажмите Ctrl+Shift+Q, чтобы вызвать инструмент «Сеть», нажмите F5, чтобы перезагрузить страницу (подтвердите предупреждение о том, что контент будет отправлен повторно, мы хотим, чтобы именно это произошло), и выберите (вероятно) самую верхнюю строку в инструменте «Сеть». Он должен показать POST как метод.

На правой стороне появляется набор вкладок. Тот, который нас интересует, "Заголовки", уже должен быть открыт. Нажмите « Edit and Resend отправить повторно», чтобы получить полное содержимое запроса. Поле "Тело запроса" содержит полные данные запроса в кодированной форме. Запустите его через декодер, как этот, чтобы вернуть ваши данные.

2

Другим возможным решением для восстановления ваших данных является создание дампа ядра Firefox (при условии, что вы используете его в Linux или аналогичной системе). Смотрите этот ответ для более подробной информации: https://superuser.com/a/236400/180675

2

Я нашел новое дополнение, которое можно использовать для восстановления потерянных постданных: Контроль истории форм

Автор утверждает:

Этот плагин также сохраняет текст из полей редактора по мере ввода текста, поэтому вам никогда не придется терять свою работу при возникновении катастрофы. Восстановите свою потерянную работу после тайм-аута сеанса, сбоев сети, сбоев браузера, сбоев питания и всего остального, что разрушит тяжелую работу, которую вы только что вложили в написание этого важного электронного письма, эссе или сообщения в блоге.

РЕДАКТИРОВАТЬ: О, это действительно сохранил этот пост. :)

1

Я боюсь, что содержимое формы не кешируется ... Обычные поля ввода (одна строка) могут быть сохранены с автоматическим заполнением, а текстовые области (несколько строк, которые вы, вероятно, набрали) - нет.

1

Веб-браузер определенно содержит данные формы в памяти. Сложность заключается в следующем: как получить эти данные?

Вот моя идея Я не пробовал это. На бумаге это работает. Этот ответ относится к Firefox и другим веб-браузерам.

Короче говоря: перезагрузите страницу, изучая заголовки.

  1. Настройте оборудование. Нам нужен механизм для проверки HTTP-трафика, отправляемого из веб-браузера.
    • Лучшим выбором является расширение LiveHTTPHeaders для Firefox. Но я думаю, что для установки этого расширения требуется перезапуск Firefox. Не перезагружайте Firefox, конечно! Было бы неплохо иметь возможность установить этот механизм без перезапуска Firefox. В противном случае вам просто нужно предварительно установить это расширение. Если возникает необходимость, просто используйте машину времени. ;-)
    • Если вы не можете подготовить оборудование в веб-браузере, есть другой вариант. Этот вариант тяжелее. Но его сильная сторона в том, что он работает для всех веб-браузеров и не перезапускает их. Установите простой веб-сервер или настройте прокси-сервер (например, Squid) на своем компьютере. Убедитесь, что ваш сервер регистрирует входящий трафик с полными заголовками. И поместите в ОС правило для перенаправления всех исходящих запросов на 127.0.0.1 . Это можно сделать с помощью файла hosts .
  2. Проверьте машины. Создайте новое окно в вашем веб-браузере. Напишите здесь текст в Википедии и нажмите « Просмотр» . Затем убедитесь, что в вашем оборудовании вы видите свой письменный текст. Если ваша машина является серверной опцией, вы должны отключить правило перенаправления, чтобы загрузить форму Википедии, а затем включить ее.
  3. Чтобы перезагрузить страницу, щелкните правой кнопкой мыши там, где была форма, и выберите « Перезагрузить» . Это важно. В некоторых веб-письмах это будет перезагружать только фрейм, где была форма. Здесь мы хотим перезагрузить только как можно меньше. Если вы нажмете кнопку « Перезагрузить» в адресной строке или в панели кнопок, или если вы нажмете Apple R, вы рискуете перезагрузить всю страницу, а в некоторых электронных письмах это может привести к выстрелу в ногу.
  4. Обычно веб-браузер спрашивает вас: хотите ли вы снова отправить данные формы? Если вы получили этот вопрос, это хороший знак. Выберите Отправить еще раз .
  5. Изучите отправленные POST-данные с помощью механизма, настроенного на шаге 1. Здесь вы найдете нужные данные.
  6. Приходите и расскажите нам, что это решение сработало!
1

*** Исправление: хотя приведенное ниже работает в Firefox и Chrome, снимок в Firefox создает двоичный файл (gzip'd). Так что пока этот подход работает только в Chrome :(

Для обоих Firefox и Chrome, я думаю , гораздо более простой способ по сравнению с фактическим дампом системного процесса заключается в использовании инструментов разработчика.

Перейдите на вкладку "Память" (в Chrome она называлась "Профили"), затем сделайте снимок и сохраните его в файл (это просто текст). Затем найдите в файле какое-нибудь слово, которое, как вы знаете, написали в форме - это, вероятно, самый быстрый способ найти весь контент.

Снимок экрана: Инструменты разработчика Firefox - вкладка "Память"

Я только что протестировал его на Chrome на странице, где динамическая форма (JavaScript) испортилась сама собой и потеряла весь написанный текст. Это было все еще в памяти, и я мог восстановить это, даже если я еще не представил это!

См. Https://developer.mozilla.org/en-US/docs/Tools/Memory и https://developers.google.com/web/tools/chrome-devtools/memory-problems/heap-snapshots для получения дополнительной информации.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .