From 5fa6b177211912e7f02e973a1043b519b5001cff Mon Sep 17 00:00:00 2001 From: "Steinar H. Gunderson" Date: Tue, 2 Jan 2007 23:23:59 +0100 Subject: [PATCH] Refactor event adding out into common code. --- perl/Sesse/pr0n/Common.pm | 28 ++++++++++++++++++++++++++++ perl/Sesse/pr0n/NewEvent.pm | 31 +++++++------------------------ 2 files changed, 35 insertions(+), 24 deletions(-) diff --git a/perl/Sesse/pr0n/Common.pm b/perl/Sesse/pr0n/Common.pm index 2079d6a..2ca54cf 100644 --- a/perl/Sesse/pr0n/Common.pm +++ b/perl/Sesse/pr0n/Common.pm @@ -526,6 +526,34 @@ sub gcd { return gcd($b, $a % $b); } +sub add_new_event { + my ($dbh, $id, $date, $desc, $vhost) = @_; + my @errors = (); + + if (!defined($id) || $id =~ /^\s*$/ || $id !~ /^([a-zA-Z0-9-]+)$/) { + push @errors, "Manglende eller ugyldig ID."; + } + if (!defined($date) || $date =~ /^\s*$/ || $date =~ /[<>&]/ || length($date) > 100) { + push @errors, "Manglende eller ugyldig dato."; + } + if (!defined($desc) || $desc =~ /^\s*$/ || $desc =~ /[<>&]/ || length($desc) > 100) { + push @errors, "Manglende eller ugyldig beskrivelse."; + } + + if (scalar @errors > 0) { + return @errors; + } + + $dbh->do("INSERT INTO events (id,date,name,vhost) VALUES (?,?,?,?)", + undef, $id, $date, $desc, $vhost) + or return ("Kunne ikke sette inn ny hendelse" . $dbh->errstr); + $dbh->do("INSERT INTO last_picture_cache (event,last_picture) VALUES (?,NULL)", + undef, $id) + or return ("Kunne ikke sette inn ny cache-rad" . $dbh->errstr); + + return (); +} + 1; diff --git a/perl/Sesse/pr0n/NewEvent.pm b/perl/Sesse/pr0n/NewEvent.pm index 18faf6a..6112453 100644 --- a/perl/Sesse/pr0n/NewEvent.pm +++ b/perl/Sesse/pr0n/NewEvent.pm @@ -15,36 +15,19 @@ sub handler { } Sesse::pr0n::Common::header($r, "Legger til ny hendelse"); - - my $ok = 1; - + my $id = $apr->param('id'); - if (!defined($id) || $id =~ /^\s*$/ || $id !~ /^([a-zA-Z0-9-]+)$/) { - $r->print("

Feil: Manglende eller ugyldig ID.

\n"); - $ok = 0; - } - my $date = $apr->param('date'); - if (!defined($date) || $date =~ /^\s*$/ || $date =~ /[<>&]/ || length($date) > 100) { - $r->print("

Feil: Manglende eller ugyldig dato.

\n"); - $ok = 0; - } - my $desc = $apr->param('desc'); - if (!defined($desc) || $desc =~ /^\s*$/ || $desc =~ /[<>&]/ || length($desc) > 100) { - $r->print("

Feil: Manglende eller ugyldig beskrivelse.

\n"); - $ok = 0; - } + + my @errors = Sesse::pr0n::Common::add_new_event($dbh, $id, $date, $desc, $r->get_server_name); - if ($ok == 0) { + if (scalar @errors > 0) { + for my $err (@errors) { + $r->print("

Feil: $err

\n"); + } $r->print("

Rett opp i feilene over før du går videre.

\n"); } else { - $dbh->do("INSERT INTO events (id,date,name,vhost) VALUES (?,?,?,?)", - undef, $id, $date, $desc, $r->get_server_name) - or dberror($r, "Kunne ikke sette inn ny hendelse"); - $dbh->do("INSERT INTO last_picture_cache (event,last_picture) VALUES (?,NULL)", - undef, $id) - or dberror($r, "Kunne ikke sette inn ny cache-rad"); $r->print("

Hendelsen '$id' lagt til.

"); } -- 2.39.2