OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 4379|回复: 2

关于LWIP_WebSever_CGI问题

[复制链接]

1

主题

6

帖子

0

精华

初级会员

Rank: 2

积分
69
金钱
69
注册时间
2015-8-20
在线时间
9 小时
发表于 2015-8-22 11:31:32 | 显示全部楼层 |阅读模式
5金钱
我在httpd_cgi_ssi.c文件里面定义了几个数组 
/**
  * 添加的变量
*/
char myLocalIp[15],myNetMask[15],myGW[15];
char myRemoteIp[15],myLocalPort[4],myRemotePort[4];
/*-------------------------------*/
创建了两个CGI函数

#define NUM_CONFIG_CGI_URIS 2  
#define NUM_CONFIG_SSI_TAGS 0  



const char* MYIP_CGI_Handler(int iIndex, int iNumParams, char *pcParam[], char *pcValue[])
{
u16 i=0; 
iIndex = FindCGIParameter("localip",pcParam,iNumParams);  //????led???÷????
//????????CGI??±ú iIndex=0
if (iIndex != -1)
{
for (i=0; i<iNumParams; i++) //?ì?éCGI????
{
 if (strcmp(pcParam , "localip")==0)  
 {
strncpy(myLocalIp,pcValue,15);
 }
if (strcmp(pcParam , "netmask")==0)  
 {
strncpy(myNetMask,pcValue,15);
 }
if (strcmp(pcParam , "gw")==0)  
 {
strncpy(myGW,pcValue,15);
 }
}
}

return "/index.html";   //LED1??,BEEP??
}


const char *MYREMOTEIP_CGI_Handler(int iIndex,int iNumParams,char *pcParam[],char *pcValue[])
{
u16 i=0;
iIndex = FindCGIParameter("remoteip",pcParam,iNumParams);  
if(iIndex != -1) 
{
for(i = 0;i < iNumParams;i++)
{
if(strcmp(pcParam,"remoteip") == 0)  
{
strncpy(myRemoteIp,pcValue,15);
}
if(strcmp(pcParam,"localport") == 0)  
{
strncpy(myLocalPort,pcValue,4);
}
if(strcmp(pcParam,"remoteport") == 0)  
{
strncpy(myRemotePort,pcValue,4);
}
}
}

return "/index.html";  
}

我定义的六个数组(全局变量)只在这两个函数里面用过,然后我进入网页对相应的表单写入数据,写入数据成功了,在debug模式下看的数据,不过过了大约30s后,我定义的数组全部被刷新为0,我不知道在哪被刷新的,当时认为程序再次进入了这个CGI服务函数,不过在这设置了断点,我用网页填入数据后,就再也没进来过。求大神指点。

正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165352
金钱
165352
注册时间
2010-12-1
在线时间
2108 小时
发表于 2015-8-22 16:12:40 | 显示全部楼层
回复

使用道具 举报

1

主题

6

帖子

0

精华

初级会员

Rank: 2

积分
69
金钱
69
注册时间
2015-8-20
在线时间
9 小时
 楼主| 发表于 2015-8-22 21:24:43 | 显示全部楼层
回复【2楼】正点原子:
---------------------------------
谢谢原子哥,这个问题是我第二次遇到了,第一次遇到是在智嵌107的开发板,修改他的裸机web服务,没用CGI,只在httpd.c文件http_accept函数用GET方法,直接解析http协议做的,也遇到同样的问题,求大家帮顶!
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2024-11-24 18:38

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

快速回复 返回顶部 返回列表