[英]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:
看來我也需要知道CGI的基本工作原理(簡而言之)。 我猜想,瀏覽器是CGI的一種編譯器嗎? 如果沒有,那是阿帕奇嗎?
由於C不是一種解釋型語言,CGI如何與C一起使用? 在perl中,我可以簡單地執行以下操作:
#!/usr/bin/perl print "Content-type: text/html\\n\\n"; print "Hello, World.";
我該如何在C語言中執行此操作?
Edit2:好的,我在stackoverflow上的cgi標簽下瀏覽了先前回答的問題。
這似乎是最受好評的: 什么是通用網關接口(CGI)?
但它仍然不清楚一些事情,我在這里要問。
由於RFC3875只是一個參考文檔,因此沒有最終的標准。
誰實施CGI協議? 誰在諸如Apache之類的服務器上定義其“標准行為”。
在現代環境中,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.