求助!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);
[其他解释]
谢谢楼上
[其他解释]
学习学习学习学习学习