boa的cgi使用总结

相关配置

配置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
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值