Всплыла проблема:
if( strlen($_POST['subject']) > 20 ){
$err[] = 'В названии темы должно быть не более 20 символов';
}
если написать например: первая тема, то будет ошибка, как я понял из-за пробела, как можно решить данную проблему?
[php:1:7ddc84bf9a]if(isset($_POST['subject']{20})){
$err[] = 'В названии темы должно быть не более 20 символов';
}[/php:1:7ddc84bf9a]
Попробуй так.
mb_strlen() из-за кодировки всё.
добавлено спустя 2 минуты:
И соответственно до этого указать mb_internal_encoding("UTF-8")
добавлено спустя 18 секунд:
Кодировки страниц тоже UTF-8
SL_NeKrOmAnT, не помогло кодировка утф 8 без ВОМ
добавлено спустя 1 минуту:
SL_NeKrOmAnT,
header ( "Content-type: text/html; charset=utf-8" );
этого достаточно
добавлено спустя 41 секунду:
ma3uk, если честно какой-то велосипед)))
HuKTO,нужно определиться с кодировкой.И согласно этой кодировке,учитывать длину строки.
добавлено спустя 1 минуту:
Касательно пробела,то предварительно перед подсчётом их можно удалить.
Кодировка страницы с которой отправляешь должна соответствовать той на которую отправляешь... скинь код свой вообще.
01 Янв 2013, 16:42Анархист, if( mb_strlen(trim($_POST['subject'])) > 20 ){
$err[] = 'В названии темы должно быть не более 20 символов';
}
все равно не работает
добавлено спустя 1 минуту:
SL_NeKrOmAnT,
<?
ob_start();
header ( "Content-type: text/html; charset=utf-8" );
?>
<!DOCTYPE html PUBLIC "-//WAPFORUM//DTD XHTML Mobile 1.0//EN" "http://www.wapforum.org/DTD/xhtml-mobile10.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="ru">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
if( mb_strlen(trim($_POST['subject'])) > 20 ){
$err[] = 'В названии темы должно быть не более 20 символов';
}
думаю достаточно, о кодировке я писал уже выше, а так весь код занимает 30 кб думаю нет смысла его сюда кидать
добавлено спустя 25 секунд:
SL_NeKrOmAnT, страница одна и тажа
SL_NeKrOmAnT,также нужно коснуться вопроса безопасности.Данные могут посылать и в другой кодировке.Следовательно,нужна проверка на соответствие,иначе конвертация.
01 Янв 2013, 16:49HuKTO, это не велосипед, это проверка существования 21 символа в строке, если существует, то выдаст ошибку. И еще, isset() - выполняется быстрее strlen.
01 Янв 2013, 17:15