Xwab
Форумыnavigate_nextПрограммирование на PHP

Длина строки
Сообщения
HuKTO

Всплыла проблема:
if( strlen($_POST['subject']) > 20 ){
$err[] = 'В названии темы должно быть не более 20 символов';
}

если написать например: первая тема, то будет ошибка, как я понял из-за пробела, как можно решить данную проблему?

01 Янв 2013, 16:17
ma3uk

[php:1:7ddc84bf9a]if(isset($_POST['subject']{20})){
$err[] = 'В названии темы должно быть не более 20 символов';
}[/php:1:7ddc84bf9a]
Попробуй так.

01 Янв 2013, 16:23
SL_NeKrOmAnT

mb_strlen() из-за кодировки всё.
добавлено спустя 2 минуты:
И соответственно до этого указать mb_internal_encoding("UTF-8")
добавлено спустя 18 секунд:
Кодировки страниц тоже UTF-8

01 Янв 2013, 16:29
HuKTO

SL_NeKrOmAnT, не помогло кодировка утф 8 без ВОМ
добавлено спустя 1 минуту:
SL_NeKrOmAnT,

header ( "Content-type: text/html; charset=utf-8" );

этого достаточно
добавлено спустя 41 секунду:
ma3uk, если честно какой-то велосипед)))

01 Янв 2013, 16:32
Анархист

HuKTO,нужно определиться с кодировкой.И согласно этой кодировке,учитывать длину строки.
добавлено спустя 1 минуту:
Касательно пробела,то предварительно перед подсчётом их можно удалить.

01 Янв 2013, 16:42
SL_NeKrOmAnT

Кодировка страницы с которой отправляешь должна соответствовать той на которую отправляешь... скинь код свой вообще.

01 Янв 2013, 16:42
HuKTO

Анархист, 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, страница одна и тажа

01 Янв 2013, 16:47
Анархист

SL_NeKrOmAnT,также нужно коснуться вопроса безопасности.Данные могут посылать и в другой кодировке.Следовательно,нужна проверка на соответствие,иначе конвертация.

01 Янв 2013, 16:49
HuKTO

если назвать тему одним словом, то все работает

01 Янв 2013, 16:51
ma3uk

HuKTO, это не велосипед, это проверка существования 21 символа в строке, если существует, то выдаст ошибку. И еще, isset() - выполняется быстрее strlen.

01 Янв 2013, 17:15
Ответить на тему