2013-07-31 18 views
0

我有一个html表格,每行有2个单选按钮和一个保存按钮。我想保存时存储的单选按钮的值与预设值时,页面revisited.This是HTML代码,我已经写了cgi文件对apache不可见,html表格返回空值

<form action='table_extract.cgi' method = 'post'> 
     <td><input type='radio' name='signoff' value = 'approve'>Approve<br> 
     <input type='radio' name='signoff' value='review'>Review</td> 
    <td><input type='submit' name='button' value='Save'/></td></form> 

这是在table_extract.cgi

#!usr/local/bin/perl 
use CGI qw(:standard); 
use CGI::Carp qw(warningsToBrowser fatalsToBrowser); 
use strict; 
use warnings; 
print <<END; 
Content-Type: text/html; charset=iso-8859-1 

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN"> 
END 

my $regfile = 'signoff.out'; 
my $sign; 
$sign = param('signoff'); 

open(REG,">>$regfile") or fail(); 
print REG "$sign\n"; 
close(REG); 
print "param value :", param('signoff'); 
print <<END; 
<title>Thank you!</title> 
<h1>Thank you!</h1> 
<p>signoff preference:$sign </p> 
END 

sub fail { 
    print "<title>Error</title>", 
    "<p>Error: cannot record your registration!</p>"; 
    exit; } 

我无法从html格式.cgi脚本中传递参数。我在网上搜索并发现Apache服务器需要可见性的CGI脚本。我试图检查加载cgi是否在httpd.conf上运行,并将cgi脚本移到cgi-bin。它不起作用。当我尝试执行.cgi文件时,仍然会得到空值。

+0

Apaches错误和访问日志中的任何条目? – Jensd

回答

0

我就从检查权限开始,如果这个脚本是可执行的:

chmod +x table_extract.cgi 

另外请在

/var/log/http/* 

检查日志文件,如果你的脚本运行没有语法错误:

perl -c table_extract.cgi 

如果你的HTML页面不在cgi-bin目录下,那么请考虑mod ifying form action parameter to:

<form action='/cgi-bin/table_extract.cgi' method = 'post'> 
+0

'chmod + x'不会在命令行上返回任何内容。我无法找到日志文件。我不是root用户。该脚本运行时没有任何语法错误。为了使html页面可以通过浏览器访问,我需要将html页面放入unix中的某个文件夹中,这不在'Apache'内。我试着把'cgi'脚本放在'cgi-bin'下,并且也放在html页面中。没有变化。 – venkatvg

+0

嗯,我想你将不得不发送更多关于你的服务器的细节。你有访问Apache配置?它是什么服务器?如果启用了perl mod,这可能是服务器管理员的问题吗? chmod + x没有返回任何东西。它将可执行标志添加到您的文件。 – Sedi