写了个CGI程序,在没调用字符串分解函数strtok()前,在网页中可以通过表单运行CGI.
但在CGI中添加个分解字符串的strtok函数(函数本身在VC/TC下编译测试没问题) 再在网页中调用CGI时就提示了
502 Bad Gateway
The CGI was not CGI/1.1 compliant.
超级终端里提示:
cgi_header: unable to find
LFLF
关于The CGI was not CGI/1.1 compliant. 这个错误我看了网上很多评论
无非就是以下几个解决方案:
1)"\n\n"少了一个,我的不少;
2)权限问题,我加权限了
3)静态编译 -static 试过了 没用
4)不支持http 1.1 协议 在工具”->"internet选项“->"高级“中去掉该选项也不行
5)修改 BOA 源码 cgi.c 添加环境变量: my_add_cgi_env(req, "LD_LIBRARY_PATH", "/lib");(函数complete_env中)再重新交叉编译
就剩最后这个没法做,我用的公司已经移植好的boa,我把我的网页和CGI都放/www下 但是我觉得不是环境变量的问题,因为我不用strtok这个函数的时候CGI是可以被调用的,而且我自己另外写的与strtok功能相仿的函数(在VC/TC下测试是正确的)来替换strtok也不行,一旦涉及到字符串的分解CGI就提示标题所说的错误。
我花了很长时间来找原因,死活都解决不了,弄不了这个问题我的毕业设计都没法做了,大家帮帮忙 帮看下吧!
感激不尽!