There are dozens of errors in your code both syntactic and logical. The code below will compile and run and probably do what you want. Please study it.
A few of the errors corrected were:
use strict; use diagnostics; use warnings; use CGI; my $q = new CGI; my $user_name = $q->param('user_name') || ''; my $gender = $q->param('gender') || ''; my $real_name = $q->param('real_name') || ''; my $city = $q->param('city') || ''; my $country = $q->param('country') || ''; my $email = $q->param('email') || ''; my $confirmemail= $q->param('confirmemail') || ''; my $mm = $q->param('birthmm') || ''; my $dd = $q->param('birthdd') || ''; my $yy = $q->param('birthyy') || ''; my ($title, $body, $i, $s, @v, @c); my $file = 'c:/test.file'; #--------------------------------------------------------------------- #START OF MAIN PROGRAM #--------------------------------------------------------------------- my $password = password(5); my $dateofbirth = "$dd/$mm/$yy"; my @info = ($user_name, $password, $email, $gender, $real_name, $dateo +fbirth, $city, $country); if ($email ne $confirmemail){ ($title, $body) = &email_invalid(); } elsif (&check_user_email($user_name,$email) eq "good"){ ($title, $body) = &good(@info); } else { ($title, $body) = &check_user_email($user_name,$email); } print qq(Content-type: text/html\n <html> <head> <title>$title</title> </head> $body </html> ); #--------------------------------------------------------------------- #END OF MAIN PROGRAM:BEGINING OF VERIFICATION #--------------------------------------------------------------------- sub email_invalid { my $title = "Email's do not match!!"; my $body = q(<body bgcolor="black" text="red"> <h3>Your e-mail doesn't match.</h3><br><br> <h2>Please click on your browsers back button and try again.</h2>< +/a><hr> </body>); return ($title, $body); } #--------------------------------------------------------------------- sub check_user_email{ my ( $user, $email ) = @_; open USRNF, $file or die "Couldn't find user file $file, Perl says + $!\n"; # generate a lookup hash from the file while(<USRNF>) { chomp; my @userinfo = split /\t/, $_; next unless $userinfo[0] and $userinfo[2]; $hash{$userinfo[0]} = $userinfo[2]; } close USRNF; if ( exists $hash{$user} ){ # username exists, two posibilities if ( $hash{$user} eq $email ) { my $title = "Account already activated.!"; my $body = qq| <body bgcolor="black" text="red"> <h3>Our records show that you already have a valid account +.</h3><br><br> <h2>If you wish to create another one you must first delet +e the old one.<br></h2> <h3>Please email me<a href="mailto:eoinmurphy\@dublin.com" +> here</a> to edit any account info. <hr> </body> |; return $title, $body; } else { my $title = "User name already in use!"; my $body = qq| <body bgcolor="black" text="red"> <h3>The username $user is already in use.</h3><br><br> <h2>Please click on your browser's back button and try a d +ifferent one.</h2></a><hr> </body> |; return $title, $body; } } # if we have not returned by here then the username is unique so.. +. return 'good'; } #--------------------------------------------------------------------- sub good { my @info = @_; my $title = "Registration successful!"; my $revised = scalar localtime; my $body = <<HTML; <body> <h1>Registration Confirmation</h1> <hr> <p>Dear, $real_name</p> <p>Thank you for registering with us. You have supplied us with the following information:</p> <blockquote> <p> <strong>Real name:</strong>\t$real_name <br> <strong>Username:</strong>\t$user_name <br> <strong>Password:</strong>\t$password <br> <strong>E-mail:</strong>\t$email <br> <strong>Date of Birth:</strong>\t$dateofbirth <br> <strong>City:</strong>\t$city <br> <strong>Country:</strong>\t$country <br> </p> </blockquote> <p>If any of this information is incorrect, please email me <a href="mailto:eoinmurphy\@dublin.com">here</a> to change it. I reserve the right to delete any user if he/she use this account for illegal purposes.</p> <blockquote> <p>Sincerely,</p> <p><em>Webmaster, Eoin.</em></p> </blockquote> <hr> <h5>You may return to the feedback form by using the <em>Back</em> button in your browser.</h5> <h5>Revised: $revised</h5> </body> HTML open USRNF,">>$file" or die "Couldn't find user file $file, Perl s +ays $!\n"; print USRNF join "\t", @info; print USRNF "\n"; close USRNF; return $title, $body; } sub password{ my $s = shift; srand($s ^ time); @c = split //, "bcdfghjklmnpqrstvwxyz"; @v = split //, "aeiou"; my $password = ''; $password .= $c[int(rand(21))] .$v[int(rand(5))] for 1..4; return $password; }
cheers
tachyon
s&&rsenoyhcatreve&&&s&n.+t&"$'$`$\"$\&"&ee&&y&srve&&d&&print
In reply to Re: To register or not (2)!!!
by tachyon
in thread To register or not (2)!!!
by NodeReaper
| For: | Use: | ||
| & | & | ||
| < | < | ||
| > | > | ||
| [ | [ | ||
| ] | ] |