CGI bin file downloads instead of executing through HTML browser

I am Embedded Software Engineer, I am new to Embedded Web Server programming, I wrote the HTML code which is simple form as the code shown below :

<form action="/cgi-bin/gpio.cgi" method="post">
<div><label>Multiplicand 1: <input name="m"></label></div>
<div><label>Multiplicand 2: <input name="n"></label></div>
<div> <input type="submit" value="Multiply" ></div>
</form>
and i wrote the following gpio.cgi code in C langugae to run it on Linux through my HTML : here is the code shown below :

int main() {
char *data ;
long m,n;
printf("%s %c%c\n ", "Content-Type:text/html;charset=iso-8859-1",13,10);
printf("<title>Multiplication results</title>\n");
printf("<h3>Multiplication results</h3>\n");
data=getenv("QUERY_STRING");
if (data==NULL)

printf("<P>Error! Error in passing data from to Script");

else if (sscanf(data,"m=%ld&n=%ld",&m,&n)!=2)

printf("<P>Error! invalid Data. ");

else printf("<P>The Product of %ld and %ld is %ld.",m,n,m*n);

return 0;

}
Than i compiled my above program by typing following command in teminal in Linux: gcc -o gpio.c gpio.cgi

and i put this gpio.cgi file in /cgi-bin directory the same path as i wrote in HTML code, but when i click Submit button after entering data , my gpio.cgi file gets download instead of execution, while i tested gpio.cgi file independently and it works fine but not with HTML browser. please help me i am really stucked with it.
Are you sure that the server is correctly configured ?
On an Apache server you need sth. like this:
1
2
3
4
5
6
<Directory "/var/www/cgi-bin">
   AllowOverride None
   Options ExecCGI
   Order allow,deny
   Allow from all
</Directory>


I think you also need enctype="multipart/form-data" in your form tag.
Are you running it from a local server ?
I am not using any or Apache server. Does it necessary to use Apache server to make executing my cgi file through HTML .
I am running it on my own machine on which i wrote code.

Thanks in advance
Last edited on
Without a server who is supposed to execute your program ?
Normally the server will execute the program and send the output of the program to the browser.
Topic archived. No new replies allowed.