2012-12-26 23 views
0

我正在嵌入式環境中工作。我有Atheros開發板。我只想使用cgi和html創建登錄頁面。我找到了一個庫libcgi。我已經交叉編譯。我也檢查過這些例子。用c語言創建登錄功能cgi-html。(沒有PHP,Apache)

  1. 如何在登錄頁面中使用該lib進行會話處理?
  2. 哪個更好的cgi庫?

歡迎任何建議。謝謝。

回答

0

CGI是一個非常簡單的事情:它是一個可執行文件,通過stdin和環境變量獲取一些信息。每次有請求時都會執行該腳本。該腳本不管理任何http的東西(比如在端口80上收聽)。

所以你很可能會需要一個HTTP服務器。其中有很多,不僅apache將使用更少的資源。

CGI根本不管理會話。你需要一個庫來做到這一點(然而,作爲一般規則,我會盡量避免使用會話進行Web開發。如果你僅僅需要它來登錄,那麼使用Web服務器進行身份驗證會更容易和更安全)。由於CGI可執行文件在請求結束時關閉,因此需要一些努力來維護狀態。

在C中編寫CGI是相當痛苦的,你不能使用任何腳本語言嗎? (如Python或紅寶石?)。

也許,如果你想通過http.k

+0

我現在只有4 MB的閃存。之後,我會得到16 MB的閃存。我必須學習像Python或Ruby這樣的腳本語言。我正在使用httpd服務器。以下過程在我的板上運行。 〜#ps 724 root 96 S/usr/sbin/httpd -h/usr/www/ 現在我有兩個庫libcgi和libqdecoder。我已經爲我的董事會交叉編譯它們。 – Malay

0

Wt看看,露出你的應用程序,你會感興趣的http://www.gnu.org/software/libmicrohttpd/。這對嵌入式系統的web gui非常有用。

+0

我現在只有4 MB的閃存。之後,我會得到16 MB的閃存。我必須學習像Python或Ruby這樣的腳本語言。我正在使用httpd服務器。以下過程在我的板上運行。 〜#ps 724 root 96 S/usr/sbin/httpd -h/usr/www /現在我有兩個庫libcgi和libqdecoder。我已經爲我的董事會交叉編譯它們 – Malay

0

我找到了這個問題的答案。我爲它準備了一個代碼。首先我要感謝bmeric和Tristram。我看了兩個建議。 microhttpd是相當有用的。但wt的大小很大,所以我的主板不支持它。

最後讓我告訴你我是如何管理的。在我的板子裏,因爲我已經告訴過httpd正在運行。這是busybox的一部分。現在我已經準備好了html頁面和java腳本,以便它將頭部中的cookie發送到服務器。

我的服務器正在接受HTTP_COOKIE環境變量中的cookie。所以我在代碼中使用了getEnv函數。基於此,我開發了一個登錄頁面的代碼。

這是函數調用功能:getenv( 「HTTP_COOKIE」)

再次感謝。