2010-02-08 2 views
0

У меня есть веб-программа cgi (в C), которая выводит различные сообщения об ошибках в файл журнала. Если программа запускается снова и запускается в ту же ошибку, я не хочу, чтобы одно и то же сообщение об ошибке снова регистрировалось. Я рассматриваю разные варианты, и любые советы приветствуются. Благодарю.Как сохранить состояние сервера приложения CGI?

-Cookie: не удалось установить файл cookie после html <head> раздел был распечатан.
(После того, как в головной части произойдут какие-либо ошибки.)

-Дата: Не имеется. Слишком много накладных расходов для этой проблемы, чтобы установить его.

-Паровый файл журнала: в этот файл журнала записываются многие другие процессы.

-Скрытые входы формы в файл html: Кажется, беспорядочно. Имеет 3 разных формы на одной странице html. Как я уверен, что скрытые поля всегда отправляются независимо от того, какая форма отправлена? Но одна из ошибок заключается в том, что html не может быть создан, поэтому не может зависеть от этого.

Спасибо.

ответ

1

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

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

+0

Да, SQLite - это здорово, но на этот раз его нужно оставить. Что касается временных файлов, является ли xml хорошей идеей или просто анализировать текстовый файл? –

+0

Я полагаю, это зависит от вашей системы - я бы сказал, что если вам не нужна база данных, то XML, вероятно, тоже будет излишней ... в конце концов, только ваша программа должна будет ее прочитать, чтобы она могла быть в любом формате (если вам нужно расширить функциональность, возможно, используйте XML?). – 2010-02-08 23:39:02

+0

Я не совсем уверен, какие разрешения у вас есть как программа CGI, но я предполагаю, что вы можете просто написать в/tmp/yourcgiprogramstatename или c: \ windows \ temp \ yourcfgprogram.state, в зависимости от того, что вам подходит. – 2010-02-08 23:40:07

1

Хранение встроенной страницы в переменной и вывод ее в конце позволит вам выпустить заголовок в любое время до этого.

+0

К сожалению, я использую шаблон html-файл и заменяю только $ KEYWORDS. www.algonet.se/~thunberg –

+0

Не удалось бы собрать все ключевые слова и * затем сделать все замены за один раз? –

1

Я думаю, вы должны реорганизовать свою программу для создания всего своего вывода ранее для отправки любого HTML-кода клиенту, таким образом вы сможете заранее знать все существующие ошибки и установить cookie.

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

+0

Необходимо было бы изменить слишком много, чтобы реорганизовать программу. Похоже, что .txt может быть так .... –

1

Использование memcached может быть способом сохранения состояний на разных сеансах.

Смежные вопросы