Jump to content

Incorrect length calculation on minLength, maxLength, betweenLength functions in Input.php


Recommended Posts

Posted

Hello,

 

Blesta accepts UTF-8 characters. However validations functions calculates string lengths incorrect.

public static function minLength($str, $length)
{
	return strlen($str) >= $length;
}

As you can see strlen counts as bytes. And "ü" character is counted as 2 rather than 1. Blesta needs to change strlen to mb_strlen which is more safe to unicode characters.

php > echo strlen("Türkish");
8
php > echo mb_strlen("Türkish");
7

 

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...
×
×
  • Create New...