Как восстановить информацию формы для веб-страницы в Firefox

26

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

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

Джейсон С
источник

Ответы:

5

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

Сатьяджит Бхат
источник
3
Лазарь перспективен. Но, увы, Лазарь мертв (!). Лазарь не работает. Контактная форма на сайте не работает. И разработчик не отвечает.
Николас Барбулеско
Также Лазарь как-то конфликтует с Firebug.
Томаш Зато - Восстановить Монику
Конечно, он «мертв», и разработчик, похоже, MIA, но он все еще работает для меня.
Animadversor
@Animadversor Он больше не работает в Firefox v53 из-за несовместимости (как сообщает Firefox при запуске).
Давид
2
Такие инструменты, как Lazarus, должны быть установлены до потери данных, а не после. ОП просит восстановить потерянные данные.
user598527
6

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

Джейсон С
источник
2
Я думаю, что он хранится в оперативной памяти, поскольку вы можете нажать «Назад», чтобы вернуться в форму с заполненными данными, но я никогда не слышал о том, чтобы Firefox восстанавливал эти значения формы после того, как вы закрыли и перезапустили браузер.
Дэвид Z
Возможно, вы захотите установить Lazarus [ addons.mozilla.org/en-US/firefox/addon/6984 ], если что-то подобное случится снова.
Сатьяджит Бхат
@ Сатья: рассмотри постинг как отдельный ответ, я бы за него проголосовал.
Джейсон С
1
Возможно, это было не так три года назад, но встроенные инструменты Firefox для веб-разработчиков в настоящее время имеют средства, позволяющие извлекать информацию аналогичным образом. Только что ответил здесь .
sh1
1
У меня есть другая идея. Перезагрузка страницы, с проверкой заголовков ... Я собираюсь опубликовать это как ответ.
Николас Барбулеско
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. Я использовал настройки по умолчанию (флажок [✓] установлен, флажок [] не установлен) - Мин. лен .: 10; [✓] Определить 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.
Krzysiu
источник
Умный подход! У меня сегодня не получилось (никогда не делаю длинных правок в онлайн-инструменте Gitlab ...), но я буду держать технику (и хороший инструмент ProcessHacker) под подушкой.
Вы можете создать файл дампа из диспетчера задач, см. Этот ответ . Так что нет необходимости в сторонних инструментах, таких как ProcessHacker.
Давид
Спасибо, Дэвид. Я все еще думаю, что нужно приостановить процесс как можно скорее, и ответ, который вы связали, ничего не говорит об этом. В случае ошибки приостановка очень поможет. Также есть функция поиска строки в PH. Поскольку символы часто дополняются 00h (null), вам все еще нужен какой-то редактор для поиска текста (Блокнот не сработает), так что не совсем "без сторонних". Тем временем я потерял комментарий на YouTube и Disqus (то есть тяжелые JavaScripted и динамические страницы) - он снова заработал, но это не на 100% надежный метод, как показывает Тибо.
Кшишиу
если запущено несколько процессов chrome, есть ли способ узнать, с каким из них нам следует работать?
JinSnow
1
Какой отличный ответ. Спасибо, что познакомили меня с ProcessHacker. Мне не удалось найти то, что я искал с настройками фильтра по умолчанию, но мне удалось установить все флажки. Конечно, результаты поиска значительно увеличились, но применение нескольких фильтров последовательно сузило их. Ах, спас меня от переписывания некоторых потерянных писем. (+1)
Линейное Рождество
3

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

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

Roland W
источник
1
Именно это. Примечание: некоторые веб-сайты по-разному кодируют содержимое, в моем случае он заменял пробелы на + и символы новой строки на \ r \ n.
user31389
2

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

Erik
источник
2

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

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

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

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

Calmarius
источник
Это расширение (очень) хорошая идея. Но это слишком сложно. Это расширение с гордостью говорит, что оно «автоматически сохраняет текст, введенный в любой форме». Сохраняет ли это «приемлемые» данные, введенные пользователем? Например, комментарии Disqus и WYSIWYG-изменения в Википедии.
Николас Барбулеско
@NicolasBarbulesco Не знаю, попробуйте, а затем скажите разработчику, если он не работает. Я предполагаю, что это работает только для полей ввода и textarea, и формирует постданные. Основная причина, по которой я скачал ее, потому что многие глупые форумы просто выходят из системы, если вы пишете пост слишком долго, съедая все ваше письмо ...
Calmarius
1

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

BloodPhilia
источник
1

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

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

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

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

Камаль
источник
в Firefox файл просто сжимается gzip, поэтому простое zcat xxx.fxsnapshotпозволяет получить содержимое.
Вааб
1
Спасибо @vaab, это действительно gzip'd, но после распаковки это все еще бинарный файл. gunzip -c(эквивалентно zcat на Mac) возвращает в основном вопросительные знаки ... Я запускал stringsего и мог получить некоторую информацию, но я не знаю, можно ли таким способом восстановить полное содержимое формы.
Камаль