Hi i am trouble adding NO CAPS and no spaces in the username on the code below

I want the username to be character from 3 to 30
I want to restrict members from adding spaces or caps

      //  Check valid user name
      if ( !$username OR strlen($username) < 3  OR strlen($username) > 30 )
          $errors[] = $lang['error_user_invalid'];

Edited by mike_2000_17: Fixed formatting

8 Years
Discussion Span
Last Post by skinbug

a regex would be the way to go, such as...

if(!$username || strlen($username = trim($username)) == 0) {
$errors[] = ...Please enter a username...;
else {
$username = stripslashes($username) // sql inject clean
$regex = "/^[a-z]+$/";
if(!preg_match($regex, $username)) {
$errors[] = ...username invalid...;
else if(strlen($username) < 3) {
$errors[] = ...username too short...;
else if(strlen($username) > 30) {
$errors[] = ...username too long...;

// END

That regex has worked for me...you can always look into them more as they can go into a lot more detail, unless someone else has another solution.

edit...there needs to bea semi colon after the stripslashes line


I got Parse error: syntax error, unexpected T_VARIABLE

on $regex = "/^[a-z]+$/";

whats wrong with it


what line do you get the syntax error on? It should tell you the line number.

In my first post, I put an edit that says I missed a semi-colon after the stripslashes line - check it out, as if you do not add this semi-colon, you will get a syntax error.

Add it where there is the comment about sql inject clean and see if you still get a syntax error.

This topic has been dead for over six months. Start a new discussion instead.
Have something to contribute to this discussion? Please be thoughtful, detailed and courteous, and be sure to adhere to our posting rules.