sulfericacid has asked for the wisdom of the Perl Monks concerning the following question:
#!/usr/bin/perl -w use strict; use CGI::Carp qw(fatalsToBrowser); use CGI; use POSIX; require SDBM_File; # # Define our constants # my $sendmail = "/usr/lib/sendmail"; my $adminmail = "test\@test.com"; my($verified, $unverified, $ID); my @chars = ( "A" .. "Z", "a" .. "z", 0 .. 9, qw(! @ $ % ^ & * ) ); # # Define our dynamic input # my $query = CGI->new; print $query->header; my %form = %{$query->Vars}; my $accountID = $query->url_param('accountID'); my $accountAD = $query->url_param('accountAD'); my (%dbm1, %dbm2); my $dbm1 = "unverified.dbm"; my $dbm2 = "verified.dbm"; tie (%dbm1, 'SDBM_File', $dbm1, O_CREAT|O_RDWR, 0644) || die "Died tying database\nReason: $!\n"; tie (%dbm2, 'SDBM_File', $dbm2, O_CREAT|O_RDWR, 0644) || die "Died tying database\nReason: $!\n"; # # If form was completed generate an ID, store them to database, email +user # if ($form{'usermail'}) { &generate_id; &email; print "An email has been sent to $form{'usermail'} for verification. +<br><br>\n"; $dbm1{$form{'usermail'}} = "$ID"; } # # Or if url param's are present and checked add them to other DB and r +emove them from $unverified # ***************The error is probably in this segment*** else { my $unverified = $accountID; my $verified = "$accountAD"; if ($dbm1{"$accountAD"} && $dbm1{"$accountAD"} =~ /^$accountAD$/) { $dbm2{"$verified"} = "$accountAD"; print "You have been added to the mailing list successfully!\n"; } else { print "Registration failed!<br><br>\n"; print "\$accountID: $accountID .<br>\n"; print "\$accountAD: $accountAD .<br>\n"; } } ***** error probably above this line sub email { $accountAD = "$form{'usermail'}"; 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/revised.pl?accountI +D=$accountID&accountAD=$accountAD\n"; close (MAIL); } sub generate_id { do { $accountID = join '', map { $chars[ rand @chars ] } 1..17; } while grep {$_ eq $ID} my @used; print $ID; # my @unverified_emails=($form{'usermail'}, $accountID); # $unverified = join "::",@unverified_emails; #$dbm{"$unverified"}= join "::",@unverified_emails; #foreach my $mail (split /::/, $dbm{'notverified'}) { # print "$mail is not verified!\n"; #} } untie(%dbm1); untie(%dbm2);
|
|---|
| Replies are listed 'Best First'. | |
|---|---|
|
Re: Registration Error
by sulfericacid (Deacon) on Mar 06, 2003 at 19:14 UTC | |
|
Re: Registration Error
by sutch (Curate) on Mar 06, 2003 at 19:41 UTC | |
| |
|
Re: Registration Error
by poj (Abbot) on Mar 06, 2003 at 19:45 UTC | |
by sulfericacid (Deacon) on Mar 06, 2003 at 20:04 UTC | |
|
Re: Registration Error
by sulfericacid (Deacon) on Mar 07, 2003 at 01:00 UTC | |
by poj (Abbot) on Mar 07, 2003 at 09:21 UTC | |
by sulfericacid (Deacon) on Mar 08, 2003 at 18:38 UTC | |
by poj (Abbot) on Mar 08, 2003 at 18:52 UTC | |
by sulfericacid (Deacon) on Mar 08, 2003 at 18:59 UTC | |
| |
|
Re: Registration Error
by sulfericacid (Deacon) on Mar 06, 2003 at 20:12 UTC |