I was just looking over an old piece of code that I wrote for
AnimeLyrics.com. It was part of an ASP script used to process a form.
It was very ugly:
my $lnum = '';
my $snum = $Request->Form('snum');
my $action = $Request->Form('action');
my $lhandle = $Request->Form('lhandle');
my $collection = $Request->Form('collection');
my $track = $Request->Form('track');
my $title = $Request->Form('title');
my $etitle = $Request->Form('etitle');
my $description = $Request->Form('description');
my $note = $Request->Form('note');
my $footnote = $Request->Form('footnote');
my $romaji = $Request->Form('romaji');
my $english = $Request->Form('english');
my $kanji = $Request->Form('kanji');
my $contributor = $Request->Form('contributor');
my $legacy = $Request->Form('legacy');
my $contributor2 = $Request->Form('contributor2');
my $jl_type = $Request->Form('jl_type');
my $jl_shandle = $Request->Form('jl_shandle');
my $jl_lhandle = $Request->Form('jl_lhandle');
my $db_snum = $dbh->quote($snum);
my $db_lhandle = $dbh->quote($lhandle);
my $db_collection = $collection ? $dbh->quote($collection) : 'NULL';
my $db_track = $track ? $dbh->quote($track) : 'NULL';
my $db_title = $dbh->quote($title);
my $db_etitle = $dbh->quote($etitle);
my $db_description = $dbh->quote($description);
my $db_note = $dbh->quote($note);
my $db_footnote = $dbh->quote($footnote);
my $db_romaji = $dbh->quote($romaji);
my $db_english = $dbh->quote($english);
my $db_kanji = $dbh->quote($kanji);
my $db_legacy = $dbh->quote($legacy);
my $db_jl_type = $dbh->quote($jl_type);
my $db_jl_shandle = $dbh->quote($jl_shandle);
my $db_jl_lhandle = $dbh->quote($jl_lhandle);
Actually, it wasn't so bad in the beginning when that form only had a
few fields. But as AnimeLyrics.com evolved, I found the need to add
more fields in... and I ended up with the monster that you see now.
If I had to write it again, I would do something like this instead:
my %f = %{$Request->Form};
my %d = ();
for (keys %f) {
$d{$_} = $dbh->quote($f{$_});
}
$d{collection} = 'NULL' unless $f{collection};
$d{track} = 'NULL' unless $f{track};
and then I can access all the form variables using %f, and the
database quoted version of the form variables using %d.
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]