前天看到这个问题,试了下,也许是自己遗忘的太多了,没成功,所以先临时置顶了下。下面说说我的想法,可能有的地方是错的。 数据通过CGI提交,到服务器缓存,放在环境变量里,GET方式可以通过QUERY_STRING变量直接读取,而POST方式提交的数据我们通常从CONTENT_LENGTH中读出长度,然后从标准输出STDIN读出附值给一个变量比如$buffer。 本来想直接往STDIN里写,但是不知道错在哪里了,没有成功。抽空再补习下协议和相关知识点再来讨论这个问题。
以下是我写的代码,见笑了。 ================================ #!/usr/bin/perl print "content-type:text/html\n\n"; if ($ENV{'REQUEST_METHOD'} eq "POST"){ read(STDIN,$buffer,$ENV{'CONTENT_LENGTH'}); print "first POST-buffer is:$buffer<br>"; }
elsif ($ENV{'REQUEST_METHOD'} eq "GET"){ $GETbuffer=$ENV{'QUERY_STRING'}; print "first GET-buffer is:$GETbuffer<br>"; }
syswrite (STDIN,$GETbuffer,length($GETbuffer));
print "GETbuffer length is:".length($GETbuffer)."<br>"; read(STDIN,$buffer,$ENV{'CONTENT_LENGTH'}); print "then POST-buffer is:$buffer<br>length is :$ENV{'CONTENT_LENGTH'}";
[此贴被 Aoming(aoming) 在 10月12日00时27分 编辑过]
|