我正在處理一個文件,我想了解如何處理一個表單,希望傳遞一個隱藏的字段。爲了簡單起見,我們可以說我希望我的scipt在第一次呈現給用戶時顯示隱藏字段的值,增加1,並在「提交」之後顯示隱藏字段的新腳本。我試圖獲得有關明確程序的見解,所以我可以將其應用到我當前的一個項目中。 我已經在網上搜索,但大多數例子只是混淆了我,任何人都可以參加?perl cgi表單處理
回答
值可以使用CGI
模塊(因爲你還沒有表現出任何的代碼,我不知道您是否使用CGI
或試圖以處理手頭的CGI交互檢索;如果你正在用手工做,你做錯了)和它的param
方法。
由於HTML表單:
<form action='my_script.cgi' method=POST>
<input type=hidden name=hidden_field value=1>
<input type=submit>
</form>
可以檢索與潛在價值(在my_script.cgi
):
#!/usr/bin/env perl
use strict;
use warnings;
use CGI;
my $q = CGI->new;
my $hidden_value = $q->param('hidden_field');
您可以將隱藏字段的值寫入cookie。每次刷新或重新訪問同一個網頁時,您的腳本都可以將cookie讀入隱藏變量並將其加1。以下示例在表單中使用變量而不是隱藏字段。提交表單
#!/usr/bin/perl
#countvisits.cgi
use strict;
use warnings;
use CGI qw(:standard -debug);
use CGI::Carp qw(fatalsToBrowser);
#declare variables
my ($count, $C_record);
#Create a new CGI object
my $cgi = new CGI;
#Read the cookie
#assign input to variable
$count=$cgi->cookie('count');
$count++;
#create cookie
$C_record = cookie(-name => "count",
-value => $count,
-expires => "6M");
#send cookie to browser
print header(-cookie => $C_record);
#create Web page
print "<HTML>\n";
print "<HEAD><TITLE>Jubilee Book Club</TITLE></HEAD>\n";
print "<BODY>\n";
print "<H1 ALIGN=center>Hello!<BR>\n";
print "You have been here $count times.</H1>\n";
print "</BODY></HTML>\n";
感謝您的答覆,這是一個非常聰明的方式去實現它,但我只能使用表單處理,有沒有一種方法可以使用表單進行相同操作?我是perl的新手,所以我想了解在形式動作調用中會用到什麼,如果隱藏的字段需要在傳遞時被解碼等。我感謝你能找到的任何東西,甚至包括提供良好解釋文章的任何鏈接。我現在已經打了好幾天了,我的形式和價值觀已經通過了,我只是不知道如何通過它們。 – idkWATimDOIN 2011-04-18 21:25:03
@Dave Sherohman的回答對我來說很好。確保您的隱藏字段具有名稱屬性。提交表單時,任何具有name屬性的表單字段的值都可以通過CGI對象的param方法由action屬性中指定的腳本檢索。 – d5e5 2011-04-19 19:21:24
- 1. 如何將qooxdoo表單提交給cgi腳本進行處理?
- 2. Perl的CGI表格輸出
- 3. 如何在Perl CGI中實現傻瓜證明unicode處理?
- 4. 如何在Perl中使用CGI :: Session處理Web會話?
- 5. 如何處理Perl CGI中的元素值?
- 6. 如何解碼CGI表單?
- 7. Python和CGI - 處理Ajax
- 8. cgi中的進程處理
- 9. 在Perl CGI
- 10. 調試perl CGI
- 11. Perl + Apache + CGI
- 12. PERL CGI程序
- 13. perl cgi線程
- 14. 簡單的Perl和CGI :: Ajax表單驗證
- 15. 處理在Perl
- 16. 使用perl CGI處理外部頁面或充當反向代理
- 17. 簡單的Perl的CGI腳本從HTML
- 18. perl CGI單選按鈕形式
- 19. fork with CGI :: Fast perl
- 20. Cygwin Perl CGI與Xampp
- 21. cgi的Perl模塊
- 22. 爲Perl CGI腳本
- 23. Perl CGI代碼bug
- 24. 手動在Perl CGI
- 25. 的WebSocket和Perl CGI
- 26. perl/sqlite cgi模板
- 27. Perl的CGI問題
- 28. fileparse error while exec cgi script-perl cgi
- 29. Perl CGI :: Session使用CGI :: Session :: Driver :: mysql
- 30. 使用Perl顯示錶格CGI
更多信息將是有益的 - 你有一些Perl代碼已經寫的嗎?你有什麼模塊使用,如果有的話?什麼是您的HTML? – justkt 2011-04-18 17:57:59
請停止使用骯髒的舊CGI.pm.改用現代和乾淨的網絡引擎,例如[舞者](http://www.perldancer.org/)或[Mojolicious](http://mojolicious.org/)。 – dolmen 2012-08-31 09:44:57