if(strlen($_POST['myname'])>16)
{
$err[]='Имя было укорочено до 16 символов';
}
$name=mysql_real_escape_string(htmlspecialchars(trim(substr($_POST['myname'],0,16))));
errors();
echo "<input type='text' name='myname' class='gala' value='$user[name]'>";
Теперь при отправке имени с размером >8 символов она укорачивает его до 8 символов,
но если вводить только цифры то все работает норм, помогите кто знает, заранее спасибо
Спустя 4 минуты, 8 секунд (10.12.2011 - 18:55) Winston написал(а):
Если у тебя кодировка UTF-8 то нужно использовать библиотеку mb_ при проверке количества символов
PS: засовывать htmlspecialchars в mysql_real_escape_string не нужно !
if(mb_strlen($_POST['myname'], 'UTF-8')>16)
{
$err[] = 'Имя было укорочено до 16 символов';
}
$name = mysql_real_escape_string(trim(substr($_POST['myname'],0,16)));
errors();
echo "<input type='text' name='myname' class='gala' value='$user[name]'>";
PS: засовывать htmlspecialchars в mysql_real_escape_string не нужно !
Спустя 1 минута, 12 секунд (10.12.2011 - 18:56) darkcuba написал(а):
Что значит mb_strlen
Спустя 2 минуты, 57 секунд (10.12.2011 - 18:59) Winston написал(а):
Цитата |
mb_strlen — Получает длину строки, при использовании многобайтовых кодировок |
Спустя 2 минуты, 53 секунды (10.12.2011 - 19:02) darkcuba написал(а):
в htaccess добавил AddDefaultCharset UTF-8 все норм спасибо)