<%init> use AwayMsg; use Data::Dumper; db_connect(); www_begin($r,$m); <%args> $save => 0 $cancel => 0 $textid => undef $desc $subject $text <%perl> if (!$save) { $m->redirect("main"); return; } my $ins; $dbh->do('BEGIN'); if ($textid ne 'new') { my $dtextq = $dbh->prepare("DELETE FROM texts WHERE textid = ?"); my $ndeleted = $dtextq->execute($textid); if (!$ndeleted) { $textid = 'new'; } } if ($textid eq 'new') { $textid = time; my $ntextq = $dbh->prepare("SELECT textid FROM texts". " ORDER BY textid DESC LIMIT 1"); $ntextq->execute(); my $ntextrow = $ntextq->fetchrow_hashref(); if ($ntextrow) { my $mintextid = $ntextrow->{'textid'} + 1; $textid = $mintextid if $textid < $mintextid; } } print STDERR Dumper([$textid, $desc, $subject, $text]); my $dinsertq = $dbh->prepare("INSERT INTO texts (textid, desc, subject, text)". " VALUES (?,?,?,?)"); $dinsertq->execute($textid, $desc, $subject, $text); my $tdeleteq = $dbh->prepare("DELETE FROM addresses WHERE textid = ?"); $tdeleteq->execute($textid); my $odeleteq = $dbh->prepare("DELETE FROM addresses WHERE emailaddr = ?"); my $tinsertq = $dbh->prepare("INSERT INTO addresses (emailaddr, textid)". " VALUES (?,?)"); my $tlistq = $dbh->prepare("SELECT * FROM config"); $tlistq->execute(); while (my $row = $tlistq->fetchrow_hashref()) { if ($ARGS{"u_".hquote($row->{'emailaddr'})}) { $odeleteq->execute($row->{'emailaddr'}); $tinsertq->execute($row->{'emailaddr'}, $textid); } } db_commit(); <& htmlhead, subpage => "Saved \"$desc\"" &> Message and configuration saved.