簡體   English   中英

將HTML表單數據傳遞給C腳本和CGI標准行為

[英]Passing HTML form data to C script and CGI standard behavior

我正在嘗試使用C編寫登錄腳本。我想知道如何將HTML表單數據傳遞到后端C腳本。 我是C的新手(來自perl)

就是這樣嗎

 <form action="test.c"> or <form action="test.a"> 

腳本如何明確區分用戶名和密碼? 之前,我只需要這樣做(在perl中):

 $username = $cgi->param("username"); 

我現在該如何在C中做到這一點。我試圖完全避免使用CGI。

編輯1:

  1. 看來我也需要知道CGI的基本工作原理(簡而言之)。 我猜想,瀏覽器是CGI的一種編譯器嗎? 如果沒有,那是阿帕奇嗎?

  2. 由於C不是一種解釋型語言,CGI如何與C一起使用? 在perl中,我可以簡單地執行以下操作:

     #!/usr/bin/perl print "Content-type: text/html\\n\\n"; print "Hello, World."; 

我該如何在C語言中執行此操作?

Edit2:好的,我在stackoverflow上的cgi標簽下瀏覽了先前回答的問題。

這似乎是最受好評的: 什么是通用網關接口(CGI)?

但它仍然不清楚一些事情,我在這里要問。

由於RFC3875只是一個參考文檔,因此沒有最終的標准。

  1. 誰實施CGI協議? 誰在諸如Apache之類的服務器上定義其“標准行為”。

  2. 在現代環境中,C文件如何與CGI一起使用。 請使用“ Hello World!”進行詳細說明。 作為對表單提交的回應。

試圖幫助您有點困難。 您的問題,特別是語句“我正試圖避免使用CGI”意味着您缺少概念概述。 為了“避免CGI”,您需要將其替換為一種接收,解析和響應HTTP請求的機制。 這意味着(可能)編寫HTTP服務器。 C是一種編譯語言。 當您懷疑是否可以執行action =“ test.c”時,它向您表明您缺少C不是一種解釋語言的事實。

您可以使用類似微小的httpd之類的方法來入門。

有關使用C的cgi的站點將為您提供幫助。 CGI的實施方式最終由實施者決定。 hello world程序就像的編譯可執行文件一樣簡單

#include <stdio.h>
int main(void) {
  printf("Content-Type: text/plain;charset=us-ascii\n\n");
  printf("Hello world\n\n");
  return 0;
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM