关于用C语言编写CGI

King 2000-01-26 10:05:00
用C如何能获得WEB页面的数据?
在PERL用变量=$ENV{'QUERY_STRING'}或read(STDIN,变量,$ENV{'CONTENT_LENGTH'})读取的WEB页POST或GET方法的环境变量,在C语言(我用Turbo C2.0:)中是否有等价的方法?什么版本的C可以实现?希望提供关键的源代码。
...全文
514 13 打赏 收藏 转发到动态 举报
写回复
用AI写文章
13 条回复
切换为时间正序
请发表友善的回复…
发表回复
zalilea 2000-05-30
  • 打赏
  • 举报
回复
对于xubin_sh恢复的解答我感到不是很好。只提到了一种解决方法。标准CGI中页面上传方式有GET和POST两中方式。他的解决方案中只提到了用POST的方式。GET方式数据的输入是通过QUERY_STRING环境变量传入的,对于POST方式数据是通过标准输入设备stdin输入的。对于GET方式可以用getenv("QUERY_STRING")函数得到输入的数据,相当于perl中的变量=$ENV{'QUERY_STRING'}。对于POST方式用直接从stdin读入的方式可以得到,相当于PERL中的read(STDIN,变量,$ENV{'CONTENT_LENGTH'})。具体的源码可以根据实际的情况有不同的表现。
King 2000-01-27
  • 打赏
  • 举报
回复
问题又来了,用Turbo C的标准输出语句例如puts,printf等怎么浏览器不接受?
xubin_sh 2000-01-27
  • 打赏
  • 举报
回复
非也,键盘输入好象是1024,这个有可能无所谓,你试试看
King 2000-01-27
  • 打赏
  • 举报
回复
好,我试一试。还有一句,在DOS下的输入不是最大256Byte吗?
xubin_sh 2000-01-27
  • 打赏
  • 举报
回复
#include <stdio.h>
void main(int argc,char** argv,char** envp)
{
puts("content-type:text/html\r\n\r\n");
while (envp++,*envp!=NULL){
puts(*envp);
puts("<BR>");
}
}
已调试过
要读post的值
首先:
判断REQUEST_MOTHOD是否等于POST
然后读标准输入:就是post过来的东西
King 2000-01-26
  • 打赏
  • 举报
回复
好,谢了。
xubin_sh 2000-01-26
  • 打赏
  • 举报
回复
e-mail:xubin_sh@163.net
icq:58231294
King 2000-01-26
  • 打赏
  • 举报
回复
行啊,但以后我有问题怎么找你呢?
xubin_sh 2000-01-26
  • 打赏
  • 举报
回复
这是c++语法,
上面的例子中不需要#include <stdio.h>这一行
iostream.h相当与stdio.h
cout是输出,可以用printf代替
cin是输入,可以用scanf代替
#include <stdio.h>
include <stdio.h>
#include <iostream.h>
#include <string>
void main(int argc,char ** argv,char ** arge)
{
puts("content-type:text/html\r\n\r\n");
while ((arge)++,*arge!=NULL){
puts(*arge);
puts("<BR>");
}
}
我没调试过
可以给分数吗?:-)


King 2000-01-26
  • 打赏
  • 举报
回复
谢谢xubin_sh,我手头上的C没有iostream.h这个头文件,但会尽快试试:)
xubin_sh 2000-01-26
  • 打赏
  • 举报
回复
#include <stdio.h>
#include <iostream.h>
#include <string>
void main(int argc,char ** argv,char ** arge)
{
string str;
cin >> str;
cout << "content-type:text/html\r\n\r\n";
cout << "abc\r\n<br>";
while ((arge)++,*arge!=NULL){
cout << *arge << "<BR>";
}
}
然后,判断进行字符串判断找到“QUERY_STRING”
以上代码可在任何os上编译
King 2000-01-26
  • 打赏
  • 举报
回复
cin>>str的办法不行啊。
King 2000-01-26
  • 打赏
  • 举报
回复
又有问题,如何取得Post方法的数据?

69,371

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧