2013-07-31 46 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