homepage Welcome to WebmasterWorld Guest from 54.198.148.191
register, free tools, login, search, subscribe, help, library, announcements, recent posts, open posts,
Accredited PayPal World Seller

Home / Forums Index / Code, Content, and Presentation / Perl Server Side CGI Scripting
Forum Library, Charter, Moderators: coopster & jatar k & phranque

Perl Server Side CGI Scripting Forum

    
How can I check a string for certain characters?
check password for complexity
cochranrg




msg:444258
 7:04 pm on Mar 21, 2006 (gmt 0)

I need to check a string which will actually be a password. Need to make sure the string contains one lower case letter, one upper case letter and one number. I know I can split the string into characters, but surely there must be a way to check it against the contents of an array such as:
@array1 = (a..z);
@array2 = (A..Z);
@array3 = (1..9);

Help?

 

perl_diver




msg:444259
 8:05 pm on Mar 21, 2006 (gmt 0)

comments removed by perl_diver

[edited by: perl_diver at 8:11 pm (utc) on Mar. 21, 2006]

perl_diver




msg:444260
 8:11 pm on Mar 21, 2006 (gmt 0)

my $string = 'Ponytail23'; 

if ($string =~ /[A-Z]/ and $string =~ /[a-z]/ and $string =~ /\d/) {
print "It's good";
}
else {
print "It's bad";
}


cochranrg




msg:444261
 8:29 pm on Mar 21, 2006 (gmt 0)

Lol, that is so easy. Show's my lack of Perl knowledge. (You should see the code I did, about 20 lines!).

Thanks!
Rob

JerryOdom




msg:444262
 8:34 pm on Mar 21, 2006 (gmt 0)

Don't forget to check the length and make sure its long enough. Thats easy though use the "length" function.

cochranrg




msg:444263
 8:44 pm on Mar 21, 2006 (gmt 0)

Yeah, got that. Just didn't know I could use the brackets in =~. Here is what I have now...

#Check for empty string, 1 and 2nd password entries match
&nameerr if (($new1 eq "")¦¦($new2 eq "")¦¦($new1 ne $new2));
#Check password length
&passworderr if (length($new1) < 6);
#Check for complexity
if ($new1 =~ /[A-Z]/ and $new1 =~ /[a-z]/ and $new1 =~ /\d/) {
&set_password;
} else {
&passworderr;
}

I'd show you what I had before, but you'd probably die laughing...

Moby_Dim




msg:444264
 9:21 pm on Mar 21, 2006 (gmt 0)

I'd add a useful (imho) advice. Create a JavaScript to do the same checking before sending form data to server. You'll save some time for your clients and (may be) a few clients too for yourself;))

perl_diver




msg:444265
 10:40 pm on Mar 21, 2006 (gmt 0)

OK, now that you see the basic concept of the validation you wanted to do, I would take it to the next step. Symbols and spaces should probably not be allowed in passwords, so use \W to check for the presence of non-word
characters, anything not belonging to a-zA-Z0-9_

if ($new1 =~ /\W/) {"Error: invalid character in password";}

Global Options:
 top home search open messages active posts  
 

Home / Forums Index / Code, Content, and Presentation / Perl Server Side CGI Scripting
rss feed

All trademarks and copyrights held by respective owners. Member comments are owned by the poster.
Terms of Service ¦ Privacy Policy ¦ Report Problem ¦ About
© Webmaster World 1996-2014 all rights reserved