sulfericacid has asked for the wisdom of the Perl Monks concerning the following question:
#!/usr/bin/perl -w use strict; use CGI; use POSIX; my $query = CGI->new; my %form = %{$query->Vars}; require SDBM_File; my %dbm; my $dbm_file = "evs.dbm"; my $accountID = $query->url_param('accountID'); my $accountAD = $query->url_param('accountAD'); tie %dbm, 'SDBM_File', $dbm_file, O_CREAT|O_RDWR, 0644; use CGI qw/:standard/; print header, start_html('EVS'), start_form, "What's your email address? ",textfield('usermail'),p, submit, end_form, hr; chomp $form{"usermail"}; my $chars; my $adminmail = "admin\@test.com"; my $sendmail = "/usr/lib/sendmail"; my @chars = ( "A" .. "Z", "a" .. "z", 0 .. 9, qw(! @ $ % ^ & * ) ); my $ID; ### randomize characters do { $ID = join '', map { $chars[ rand @chars ] } 1..17; } while grep {$_ eq $ID} my @used; ### If USERMAIL exists add information to notverified DBM if ($form{'usermail'}) { my @unverified_emails=($form{'usermail'}, $ID); $dbm{'$notverified'}= join "::",@unverified_emails; #foreach my $mail (split /::/, $dbm{'notverified'}) { # print "$mail is not verified!\n"; #} print "An email has been sent to $form{'usermail'}. Please ch +eck it to verify your information.\n"; ### email the users my $accountAD = "$form{'usermail'}"; my $accountID = $ID; open (MAIL, "|$sendmail -t") or die "Cannot access mail"; print MAIL "To: $form{'usermail'}\n"; print MAIL "From: $adminmail\n"; print MAIL "Subject: Verify your Email Address\n\n"; print MAIL "http://sulfericacid.perlmonk.org/evs/evs.pl?accountID=$a +ccountID&accountAD=$accountAD\n"; close (MAIL); } ### If url_param() exists if ($accountID && $accountAD) { ¶ms; } ### If url_param() exists check to see if it exists in DBM sub params { if ($accountID && ($accountAD ne '') && (exists $dbm{'$notverified'})) + { $dbm{'$verified'} = $accountAD; print "Your address has been indexed!\n"; ### test database prints foreach (sort keys(%dbm)) { print "$_ => $dbm{$_}\n"; } } else { print "Your email address and registration did not match. Please ch +eck your email again.\n"; } }
|
|---|
| Replies are listed 'Best First'. | |
|---|---|
|
Re: Database still overwriting itself
by Mr. Muskrat (Canon) on Feb 14, 2003 at 18:26 UTC | |
|
Re: Database still overwriting itself
by l2kashe (Deacon) on Feb 14, 2003 at 20:04 UTC | |
|
Re: Database still overwriting itself
by jasonk (Parson) on Feb 14, 2003 at 18:22 UTC | |
by sulfericacid (Deacon) on Feb 14, 2003 at 18:40 UTC | |
by Mr. Muskrat (Canon) on Feb 14, 2003 at 19:07 UTC | |
by sulfericacid (Deacon) on Feb 16, 2003 at 05:22 UTC | |
by Mr. Muskrat (Canon) on Feb 17, 2003 at 14:40 UTC | |
|
Re: Database still overwriting itself
by sulfericacid (Deacon) on Feb 16, 2003 at 05:28 UTC |