обработка формы perl cgi - PullRequest
0 голосов
/ 18 апреля 2011

Я работаю над файлом и пытаюсь понять, как обрабатывать форму в надежде передать скрытое поле.для простоты, скажем, я хочу, чтобы мой сценарий просто показывал значение скрытого поля, когда оно впервые представляется пользователю, увеличивается на единицу, а после его «отправки» отображается новый скрипт с обновленным скрытым полем.Я пытаюсь понять явную процедуру, чтобы применить ее к одному из моих текущих проектов.Я искал в Интернете, но большинство примеров просто смущают меня, может кто-нибудь вмешаться?

Ответы [ 2 ]

4 голосов
/ 19 апреля 2011

Значения, представленные в форме, можно получить с помощью модуля 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');
0 голосов
/ 19 апреля 2011

Вы можете записать значение скрытого поля в файл cookie. Каждый раз, когда вы обновляете или повторно посещаете одну и ту же веб-страницу, ваш скрипт может считывать cookie в скрытую переменную и увеличивать его на единицу. В следующем примере вместо скрытого поля в форме используется переменная.

#!/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";
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...