diff options
author | Florian Pritz <bluewind@xinu.at> | 2012-12-16 13:12:57 +0100 |
---|---|---|
committer | Florian Pritz <bluewind@xinu.at> | 2012-12-16 13:12:57 +0100 |
commit | a83ceb1791676b9d7e8659760be570895706ac2c (patch) | |
tree | 5ee5c62bde62a969cec44a28cbc756e8d4b56056 | |
parent | 5659e23cd8c928bd26dff16b13b0eebf89688bef (diff) |
c/user: register() prevent DB error if username is non-ascii
The DB col is set to ascii_general_ci so if the username doesn't pass
the charset check we shouldn't even bother query the db because that can
trigger a collation error (utf-8 vs ascii).
Signed-off-by: Florian Pritz <bluewind@xinu.at>
-rw-r--r-- | application/controllers/user.php | 8 |
1 files changed, 4 insertions, 4 deletions
diff --git a/application/controllers/user.php b/application/controllers/user.php index aa1ea235b..cac47ebe1 100644 --- a/application/controllers/user.php +++ b/application/controllers/user.php @@ -142,6 +142,10 @@ class User extends CI_Controller { if (!$username || strlen($username) > 32 || !preg_match("/^[a-z0-9]+$/", $username)) { $error[]= "Invalid username (only up to 32 chars of a-z0-9 are allowed)."; + } else { + if ($this->muser->username_exists($username)) { + $error[] = "Username already exists."; + } } $this->load->helper("email"); @@ -149,10 +153,6 @@ class User extends CI_Controller { $error[]= "Invalid email."; } - if ($this->muser->username_exists($username)) { - $error[] = "Username already exists."; - } - if (!$password || $password != $password_confirm) { $error[]= "No password or passwords don't match."; } |