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中会产生上面的错误。
请各位高手不吝赐教,小弟万分感谢!!
3 个解决方案
#1
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);
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);
#2
谢谢楼上
#3
学习学习学习学习学习
#1
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);
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);
#2
谢谢楼上
#3
学习学习学习学习学习