当前位置: 代码迷 >> CGI >> !c语言写的cgi 跳转到另外一个网页
  详细解决方案

!c语言写的cgi 跳转到另外一个网页

热度:425   发布时间:2012-12-22 12:05:07.0
求助!c语言写的cgi 跳转到另外一个网页
在boa服务器下,写一个cgi要求能读取本地配置文件里的一个地址,然后将网页重定向到该地址上去,让我困惑的是程序这样写
char ip[]="192.168.1.230/Main.html";
sprintf(buf, "<script>window.setTimeout(\"location.href = 'http://%s'\", 1000);</script>\n", ip);
就能够跳转到192.168.1.230/Main.html,但是当我读取本地配置文件的ip,再跳转却发生如下错误:
502 Bad Gateway
The CGI was not CGI/1.1 compliant.
程序是这样写的:
FILE *fp;
int w;
char ip[50];
fp=fopen("/www/ip.cfg" , "r");
fgets(ip,50,fp);
w=strlen(ip);
char ipip[w+1];
strcpy(ipip,ip);
ipip[w]='\0';
fclose(fp);
char *buf;
sprintf(buf, "<script>window.setTimeout(\"location.href = 'http://%s'\", 1000);</script>\n", ipip);
ps:ip.cfg文件里只有一行ip地址,后面没有空格或回车其他的,我测试过能把该地址读出来,但就是不明白为什么在cgi中会产生上面的错误。
请各位高手不吝赐教,小弟万分感谢!!

------最佳解决方案--------------------
CGI执行错误。LZ要提高C基础。

1. 野指针:char *buf;
2. 没有输出到标准输出:你打印到buf中去了,哪会输出到屏幕呢?

把sprintf(buf, "<script>window.setTimeout(\"location.href = 'http://%s'\", 1000);</script>\n", ipip);

改成
printf("<script>window.setTimeout(\"location.href = 'http://%s'\", 1000);</script>\n", ipip);
------其他解决方案--------------------
谢谢楼上
------其他解决方案--------------------
学习学习学习学习学习
  相关解决方案