2015-04-05 16 views
1
#!/usr/bin/perl -wT 
use CGI qw(:standard); 
use CGI::Carp qw(warningsToBrowser fatalsToBrowser); 
use strict; 

print header; 
print start_html("Thank You"); 
print h2("Thank You"); 

my %form; 
foreach my $p (param()) { 
     $form{$p} = param($p); 
     print "$p = $form{$p}<br>\n"; 
     } 

print end_html;  

這適用於所有的基本形式和確認是好的,但不是在一個表中的順序http://www.quickpaysolutions.com/tt.html我試圖輸出這一個表的形式

我有另一種形式的不工作與表格,但形式確認是按字母順序排列的,而不是表格的構建方式。我希望表格邊框中的表格和表格的順序。

http://www.quickpaysolutions.com/jt.html

操作的代碼:

#!/usr/bin/perl 

print "Content-type:text/html\n\n"; 

use CGI qw(:standard); 
use CGI::Carp qw(warningsToBrowser fatalsToBrowser); 
use strict; 
use CGI; 
my $cgi = new CGI; 

print 

$cgi->header() . 
$cgi->start_html(-title => 'Form Results') . 
$cgi->center($cgi->h1('Your Reciept <br> Please Print this Reciept')). "\n"; 

my @params = $cgi->param(); 
print '<table border="1" width="500" align="center" cellspacing="1" cellpadding="2">' . "\n"; 
foreach my $parameter (sort @params) { 
    print "<tr><th>$parameter</th><td>" . $cgi->param($parameter) . "</td></tr>\n"; 
} 

print "</table>\n"; 

# 
$ENV{PATH} = "/usr/sbin"; 

open (MAIL, "|/usr/sbin/sendmail -oi -t ") or &dienice("Can't fork for sendmail: $!\n"); 
my $recipient = '[email protected], [email protected]'; 
print MAIL "To: $recipient\n"; 
print MAIL "From: nobody\@quickpaysolutions.com\n"; 
print MAIL "Subject: Form Data\n\n"; 
foreach my $p (param()) { 
    print MAIL "$p = ", param($p), "\n"; 
} 
close(MAIL); 

# Now print a thank-you page 

# The dienice subroutine handles errors. 

sub dienice { 
    my ($errmsg) = @_; 
    print "<h2>Error</h2>\n"; 
    print "<p>$errmsg</p>\n"; 
    print end_html; 
    exit; 
} 

$cgi->end_html . "\n"; 
+0

[文檔的CGI模塊(https://metacpan.org/pod/CGI)含有非常明確的警告,就像'CGI.pm已被刪除從一些事情不應再使用PERL CORE和HTML生成函數。你的第二個例子在第一個'tr'中也有'th'元素和* td'元素。那是錯的。 – Borodin 2015-04-05 17:25:02

回答

1

形式確認出來的字母,而不是形式構造

這將是因爲你的方式有

foreach my $parameter (sort @params) { ... } 

如果您刪除了sort,那麼參數將按照與第一個示例相同的順序顯示。

但是請理解應該避免一般的CGI和特別是HTML生成函數,特別是對於直播網站來說,這似乎是。這是一個很多更容易獲得使用Dancer2

+0

我得到了代碼感謝 – 2015-04-06 19:02:23