Not just security. Lots of other reasons too Go to google.com and search for CGI.pm vs cgi-lib.pl
> > thanks! > > what type of security does the CGI module include that > cgi-lib doesn't have? > > >>> "Dan Muey" <[EMAIL PROTECTED]> 02/11/03 06:30 AM >>> > Because you call log_data() everyt time the script is run > regardless of input So it will write do log_data when you > first bring up the form because $in{'Submit'} will always not > equal 'Submit' Until the user does soemthing to make it equal 'Submit' > > 1) > You should check input always!!!! > 2) always do : > #!/perl -w > > Use strict; > 3) > Don't use cgi-lib.pl use CGI perl module for security, and > othere issues. > > 4) to avoid runnning it do sonething like this : > > if(something) { log_data(); } > else { main_page(); } > > > > Hi all, > > > > I have a cgi with a here doc, > > which takes the input fields (name, address, city, zip, etc.) > > and writes to a file. > > > > it work fine, BUT when you press "Reload" on the browser it > > keeps writing blank data to the output file. > > > > Does anyone know how I can prevent this? > > > > > > thanks for any help, > > Pam > > > > > > > > Here's a snippet ------------------------- > > > > #!/usr/local/bin/perl > > > > # Use Steve Brenner's CGI libraries: > > require("cgi-lib.pl"); > > > > # Print the all-important HTML headers: > > print PrintHeader(); > > > > # Read any passed-in input, and put it into a hash named > > "in": ReadParse(); > > > > > > clean_up(); > > log_data(); > > > > if (($in{'Submit'} ne "Submit")) { > > > > > > > > #display html page > > print <<EOF; > > > > <HTML> > > <HEAD> > > form to fill out > > > > </HTML> > > EOF; > > > > #subroutine to clean up data > > sub clean_up{ > > #get rid of comma anywhere in users input > > $in{'Q1'} =~ s/,//g; > > $in{'Q2'} =~ s/,//g; > > $in{'Q3'} =~ s/,//g; > > $in{'Q4'} =~ s/,//g; > > $in{'Q4'} = s/Street/ST/g; > > $in{'Q7'} =~ s/California/CA/g; > > } > > > > > > sub log_data { > > $lock_ex = 2; > > $lock_un = 8; > > open(OUT, ">>test.txt"); > > > > #lock file > > flock (OUT, "$lock_ex"); > > print OUT $date; > > print OUT "\,"; > > print OUT uc($in{'Q1'}); > > print OUT ","; > > print OUT uc($in{'Q2'}); > > print OUT ","; > > print OUT uc($in{'Q3'}); > > print OUT ","; > > print OUT uc($in{'Q4'}); > > print OUT ","; > > print OUT uc($in{'Q5'}); > > print OUT ","; > > print OUT uc($in{'Q6'}); > > print OUT ","; > > print OUT uc($in{'Q7'}); > > print OUT ","; > > print OUT $in{'Q8'}; > > print OUT ","; > > print OUT $in{'Q9'}; > > print OUT "\n"; > > close(OUT); > > #unlock the file > > flock(OUT, "$lock_un"); > > } > > > > > > sample output file: > > 02/10/03,DOE,JANE,AUTHOR,123 MAIN > ST,,BERKELEY,CA,94123,[EMAIL PROTECTED] > > 02/10/03,,,,,,,,, > > 02/10/03,,,,,,,,, > > > > > > -- > > To unsubscribe, e-mail: [EMAIL PROTECTED] > > For additional commands, e-mail: [EMAIL PROTECTED] > > > > > > > > -- > To unsubscribe, e-mail: [EMAIL PROTECTED] > For additional commands, e-mail: [EMAIL PROTECTED] > > -- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]