#!/usr/bin/perl -w use lib qw!/home/webpaper/perl/lib/perl5 /home/webpaper/perl/lib/perl5/site_perl!; use Fcntl; use CGI qw/:standard/; use MLDBM qw/DB_File Storable/; use Encode; print header; print start_html(-encoding=>'utf-8', -style=>{-code=><<"EOS"}); div { margin-left: 25%; margin-right: 25%; text-align: center; padding: 15px;margin-top: 130px; border: dotted 1px #999} body { background: url("/~webpaper/webpaper.png") no-repeat } ul { border: solid 2px; padding-top: 15px; } ul:before { content: "Perguntas de " attr(id) " pontos"; font-size: 15px; font-weight: bold; display: block; padding-bottom: 10px;} table.x { margin-bottom: 30px } input { border: solid 1px } input.ans { background-color: #ddeeff } input.url { background-color: #ffeedd } .id { border: dotted 2px #999; margin-left: 25%; margin-right: 25%; padding: 10px; background-color: #eee} h3 { margin: 0px } EOS my $qid = 0; my $cla = param("cla"); my $pwd = param("pwd"); if (!$cla || !$pwd) { print div("Identificação incompleta"); } else { if (valido($cla,$pwd)) { my $ans = {}; for $qid (1..41) { $ans->{$qid}{ans} = param("ans$qid"); $ans->{$qid}{url} = param("url$qid"); } $ans->{tim} = scalar(localtime); $ans->{status} = ""; $ans->{pts} = 0; tie %ans, 'MLDBM', 'webpaper_ans.db', O_CREAT|O_RDWR, 0666 or die $!; $ans{$cla} = $ans; untie %ans; print div("Respostas guardadas!"); print "Usem o botão Back do vosso browser para voltar ao formulário"; } else { print div("Identificação inválida"); } } print end_html; sub valido { my ($cla, $pwd) = @_; tie %db, 'MLDBM', 'webpaper_pwds.db', O_RDWR, 0640 or die $!; my $valido = ($db{$cla}{pwd} eq $pwd); untie %db; return $valido; }