On Mon, 23 Dec 2002 01:33:58 -0600, [EMAIL PROTECTED] (David Gilden) wrote:
>I would like to be able to test for either of the two secret words >but it seems to fail, what am I missing? >#!/usr/bin/perl >use CGI qw/:standard/; >use CGI::Carp qw(fatalsToBrowser); >use strict; > >my $qs = $ENV{'QUERY_STRING'}; > >my $secret_word = 'one'; >my $secret_word_guest = 'two'; > >if (($qs ne $secret_word_guest) or ($qs ne $secret_word)) { >print "Bad password"; >exit; >} Hi, I think your problem is that you are using my $qs = $ENV{'QUERY_STRING'}; and you are expecting it to match, it dosn't. The $ENV{'QUERY_STRING'} actually looks something like someword&someotherword or it may look like someword=this&someword=that So if (($qs ne $secret_word_guest) or ($qs ne $secret_word)) { print "Bad password"; should always say Bad Password You might be able to get away with using a regex instead of ne if (($qs !~ $secret_word_guest) or ($qs !~ $secret_word)) { print "Bad password"; But you are better off using the params given to you by CGI.pm if ( param('secret_word) ne $secret_word) or ( param('secret_word_guest) ne $secret_word_guest)) {print 'Bad Password'} You might want to improve that logic, I'm not sure if it does what you really intend. Like maybe: if ( param('secret_word) eq $secret_word) or ( param('secret_word_guest) eq $secret_word_guest)) {print 'Good Password'} else {print 'Bad Password'} -- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]