一个关于使用CGI程序生成本地配置文件的问题,请各位帮忙,谢谢!

一个关于使用CGI程序生成本地配置文件的问题,请各位帮忙,谢谢!

以下为CGI程序:
#!/usr/local/bin/perl
print "Content-type: text/html\n\n";
if ($ENV{'REQUEST_METHOD'} eq "POST") {
   read(STDIN, $buffer, $ENV{'CONTENT_LENGTH'});
} elsif ($ENV{'REQUEST_METHOD'} eq "GET") {
   $buffer=$ENV{'QUERY_STRING'};
}
print "<H1>\311\372\263\311\265\304\305\344\326\303\316\304\274\376\304\332\310\335\310\347\317\302:</H1>";
print "<ul>\n";
@pairs = split(/&/, $buffer);

foreach $pair (@pairs)
{
   ($name, $value) = split(/=/, $pair);
   $value =~ tr/+/ /;
   $value =~s/%([a-fA-F0-9][a-fA-F0-9])/pack("C", hex($1))/eg;
   $link{$name}=$value;
}

.......
经过一段对输入信息的处理后,生成一个配置文件数组@config,我想把这个数组的内容写到一个文件里,我使用的是下面的代码

open(TEMP,"+>./config-temp") || die "<p>$!";
print TEMP @config;
close(TEMP);


在通过表单提交操作后,我在主机上的相应目录里去找config-temp文件,但是却找不到,不知道为什么?请各位帮忙解答,谢谢!


QUOTE:
原帖由 hotren 于 2007-11-12 12:51 发表
以下为CGI程序:
#!/usr/local/bin/perl
print "Content-type: text/html\n\n";
if ($ENV{'REQUEST_METHOD'} eq "POST") {
   read(STDIN, $buffer, $ENV{'CONTENT_LENGTH'});
} elsif ($ENV{'REQUEST_MET ...

如果你使用的是apach ,首先你应该去查看/etc/httpd/logs/error_log 下的日志文件。他会告诉你你的CGI程序哪里会有问题。
我估计是权限的问题。所以笨办法是先建立一个同名的文件把权限改成所有人都能写。具体错误情况看日志。
谢谢,最后确认确实是权限问题, 依你所说,把需要修改的文件权限设成777,搞定了,虽然感觉有隐患,但是只能先这样儿了,用别的方式安全一下吧先,呵呵!