boa的cgi使用总结

it2023-02-22  83

相关配置

配置ScriptAlias 虚拟路径 真实路径 ScriptAlias /cgi-bin/ /etc/boa/www/cgi-bin/

指明CGI脚本的虚拟路径对应的实际路径。一般所有的CGI脚本都要放在实际路径里,用户访问执行时输入站点+虚拟路径+CGI脚本名

测试代码

login.html

<html> <head> <title>CGI登陆</title> <meta http-equiv="Content-Type" content="text/html; charset=utf-8"> </head> <body> <form name="login" action="./cgi-bin/login.cgi">姓名:<input type="text" name="name" /> <br/>密码:<input type="password" name="pwd" /> <br/>确定:<input type="submit" value="登陆" /> </form> </body> </html>

login.c

#include<stdio.h> #include<stdlib.h> int main() { char *date; char name[50],pwd[20]; printf("content-type:text/html;charset=utf-8\n\n"); printf("<TITLE>登陆结果</TITLE>"); printf("<H3>登陆结果</h3>"); date=getenv("QUERY_STRING"); if(date==NULL) printf("<p>错误:数据没有被输入或数据传输发生错误</p>"); else { sscanf(date,"name=%[^&]&pwd=%s",name,pwd); printf("<p>name=%s</p>",name); printf("<p>pwd=%s</p>",pwd); printf("%s",date); } return 0; }

1.将login.html放在

2.编译login.c,并放到

gcc login.c -o login.cgi

测试结果

直接请求cgi

使用CGI的基本思路,cgi里有main函数,向网页输出的内容通过printf输出,这一点非常像java servlet。 在main函数里可以获取请求的参数 测试: test.c

/* * @Descripttion: 测试url http://192.168.2.136/cgi-bin/test.cgi * @version: 1.0.0 * @Author: zhangyasheng * @Date: 2020-10-20 14:44:57 * @LastEditors: zhangyasheng * @LastEditTime: 2020-10-20 14:58:32 */ #include <stdio.h> #include <string.h> #include <stdlib.h> int main() { printf("content-type:text/html;charset=utf-8\n\n"); printf("<TITLE>test.cgi</TITLE>"); printf("<H3>test.cgi</h3>"); return 0; } gcc test.c -o test.cgi sudo cp test.cgi /etc/boa/www/cgi-bin

通过这个url可以直接请求到cgi

最新回复(0)