From e530ffa24f8ae9657f23809f265f9f6628325ff3 Mon Sep 17 00:00:00 2001 From: mensonge Date: Fri, 14 Nov 2008 11:36:23 +0000 Subject: [PATCH] Bug fix: test username's length (max 25) when registering (preventing problem with database git-svn-id: https://semanticscuttle.svn.sourceforge.net/svnroot/semanticscuttle/trunk@155 b3834d28-1941-0410-a4f8-b48e95affb8f --- register.php | 4 ++++ services/userservice.php | 12 ++++++++++++ 2 files changed, 16 insertions(+) diff --git a/register.php b/register.php index e60a686..b70d724 100644 --- a/register.php +++ b/register.php @@ -39,6 +39,10 @@ if (isset($_POST['submitted'])) { // Check if username already exists } elseif ($userservice->getUserByUsername($posteduser)) { $tplVars['error'] = T_('This username already exists, please make another choice.'); + + // Check if username is valid (length, authorized characters) + } elseif (!$userservice->isValidUsername($posteduser)) { + $tplVars['error'] = T_('This username is not valid (too long, forbidden characters...), please make another choice.'); // Check if e-mail address is valid } elseif (!$userservice->isValidEmail($_POST['email'])) { diff --git a/services/userservice.php b/services/userservice.php index ee62dbb..e50faaa 100644 --- a/services/userservice.php +++ b/services/userservice.php @@ -388,6 +388,18 @@ class UserService { return false; } } + + function isValidUsername($username) { + if (strlen($username) > 24) { + // too long usernames are cut by database and may cause bugs when compared + return false; + } else { + return true; + } + return true; + } + + function isValidEmail($email) { if (eregi("^[_a-z0-9-]+(\.[_a-z0-9-]+)*@[a-z0-9-]+(\.[a-z0-9-]+)*(\.[a-z]{2,6})$", $email)) {