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
Advertisement
Associates
Associates
techtuts Darkmindz
CSS Tutorials Tutorialsphere.com - Free Online Tutorials
Boston PHP SurfnLearn
Reply
 
LinkBack Thread Tools Search this Thread Display Modes
Old 07-27-2008, 06: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, 08:45 PM   #2 (permalink)
The Gregarious
 
delayedinsanity's Avatar
 
Join Date: Mar 2008
Location: Cana'derr
Posts: 653
Thanks: 24
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 User Says Thank You to delayedinsanity For This Useful Post:
Oilik (07-27-2008)
Old 07-27-2008, 08: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, 11:32 AM   #4 (permalink)
The Frequenter
Advanced Programmer Top Contributor Good Samaritan 
 
Join Date: Oct 2007
Location: Manchester, UK
Posts: 469
Thanks: 26
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
__________________
sketchMedia is offline  
Reply With Quote
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 09:35 PM.

 
     

Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2008, Jelsoft Enterprises Ltd.
Search Engine Optimization by vBSEO 3.1.0