TalkPHP
 
 
Account Login
Latest Articles
» The basic usage of PHPTAL, a XML/XHTML template library for PHP
» Vulnerable methods and the areas they are commonly trusted in.
» Simple way to protect a form from bot
» The Basics On: How Session Stealing Works
» How to keep your forms from double posting data
IRC Channel
IRC Speech Bubble Join the friendly bunch on IRC...
(#TalkPHP on Freenode)

...Also available via a web interface.

See this thread for information on the TalkPHP Free Hugs Initiative™. Subject to availability.
Associates
Associates
CSS Tutorials
Reply
 
LinkBack Thread Tools Search this Thread Display Modes
Old 07-27-2008, 05:29 PM   #1 (permalink)
The Wanderer
 
Join Date: Jul 2008
Posts: 6
Thanks: 1
Oilik is on a distinguished road
Default Example: Check Usernames

This is a simple function I made to check if a string is a valid username or not. If it has illegal characters not specified, it'll return false/nothing, and if it's valid it'll return true/1.

PHP Code:
<?php
function isValid($string){
    
$string str_replace("_","",$string);
    
$string str_replace(" ","",$string);
    
$string str_replace(".","",$string);
    
$string str_replace("-","",$string);
        if(
ctype_alnum($string)){
            return 
true;
        }else{
            return 
false;
        }
}
?>
This is easier to remember than preg_replace for me :(
I've never quite understood that function...
Oilik is offline  
Reply With Quote
Old 07-27-2008, 07:45 PM   #2 (permalink)
is cute and cuddly
 
delayedinsanity's Avatar
 
Join Date: Mar 2008
Location: Vegas, Baby
Posts: 963
Thanks: 31
delayedinsanity is on a distinguished road
Default

PHP Code:
return preg_match('~^[A-Za-z][A-Za-z0-9_]{3,29}$~'$szString) ? TRUE FALSE
Username must be between 4 to 30 characters in length, may contain letters, numbers or underscores, but must start with a letter.
-m
delayedinsanity is offline  
Reply With Quote
The Following 2 Users Say Thank You to delayedinsanity For This Useful Post:
nefus (12-28-2008), Oilik (07-27-2008)
Old 07-27-2008, 07:47 PM   #3 (permalink)
The Wanderer
 
Join Date: Jul 2008
Posts: 6
Thanks: 1
Oilik is on a distinguished road
Default

Quote:
Originally Posted by delayedinsanity View Post
PHP Code:
return preg_match('~^[A-Za-z][A-Za-z0-9_]{3,29}$~'$szString) ? TRUE FALSE
Username must be between 4 to 30 characters in length, may contain letters, numbers or underscores, but must start with a letter.
-m
Woah.. Thanks, thats useful. Intense too. :P
Oilik is offline  
Reply With Quote
Old 08-07-2008, 10:32 AM   #4 (permalink)
The Prestige
Advanced Programmer Top Contributor Good Samaritan 
 
sketchMedia's Avatar
 
Join Date: Oct 2007
Location: Manchester, UK
Posts: 854
Thanks: 32
sketchMedia is on a distinguished road
Default

I think that could be further condensed:
PHP Code:
return preg_match('/^[a-z][\w]{3,29}$/i'$szString) ? true false
'\w' stands for "word character" and is the same as [A-Za-z0-9_](including underscores)
and the 'i' at the end of the expression (after the trailing '/') makes it case insensitive.
If you want to enforce a capital at the start of the username just remove the 'i' and change the '[a-z]' to '[A-Z]' or vice-versa

To actually strip the chars specified in your function from the string with preg_replace:
PHP Code:
echo preg_replace('/[_.-\s]/''$1'$szString); 
should do it
__________________
mysql> SELECT * FROM `users` WHERE `users`.`clue` > 0;
Empty set (0.00 sec)
sketchMedia is offline  
Reply With Quote
The Following User Says Thank You to sketchMedia For This Useful Post:
nefus (12-28-2008)
Reply



Currently Active Users Viewing This Thread: 1 (0 members and 1 guests)
 
Thread Tools Search this Thread
Search this Thread:

Advanced Search
Display Modes

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

vB code is On
Smilies are On
[IMG] code is On
HTML code is Off
Trackbacks are On
Pingbacks are On
Refbacks are On


All times are GMT. The time now is 05:46 PM.

 
     

Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2013, Jelsoft Enterprises Ltd.
Search Engine Optimization by vBSEO 3.1.0
Inactive Reminders By Icora Web Design