trim() expects parameter 1 to be string, array given

Provokator86

Мой дом здесь!
Регистрация
27 Май 2012
Сообщения
365
Реакции
237
Собственно проблема в заголовке.
var_dump($string); показывает
Код:
string(9) "запись" array(1) { [0]=> string(1) "5" }
Виновник. на кого пхп всех собак спускает
Код:
$string = strip_tags(trim($string), $allowable_tags);
        if(!get_magic_quotes_gpc() || !get_magic_quotes_runtime()){
            $string = addslashes($string);
        }
        return $string;
В общем голову сломал и не пойму почему передается массив
 
Последнее редактирование:
Наверное потому, что $string содержит массив? :ah:
Как мы из этого кода поймём, откуда взялся массив?
 
Наверное потому, что $string содержит массив? :ah:
Как мы из этого кода поймём, откуда взялся массив?
:D логично, что ожидает строку, а получает массив.
Ошибка на строку в функции
Код:
$string = strip_tags(trim($string), $allowable_tags);
Понять из этого надо. Я только не пойму почему удаляя теги html и php trim() видит массив.
var_dump($string), в данной функции
Код:
string(9) "запись" array(1) { [0]=> string(1) "5" }
Это то, что передается через форму и вызывает ошибку.
Вообще суть этого такова:
Есть форма в которой есть заголовок и теги.
Ошибка указывает на теги, точнее на строку функции, где отсекаются теги html php, и передается в чистом виде значение. var_dump() почему-то в этой функции передает заголовок
string(9) "запись" - "запись" это заголовок. А тегов здесь нет.
echo $string выводит заголовокArray
 
Последнее редактирование:
:D логично, что ожидает строку, а получает массив.
Ошибка на строку в функции
Код:
$string = strip_tags(trim($string), $allowable_tags);
Понять из этого надо. Я только не пойму почему удаляя теги html и php trim() видит массив.
var_dump($string), в данной функции
Код:
string(9) "запись" array(1) { [0]=> string(1) "5" }
Это то, что передается через форму и вызывает ошибку.
Вообще суть этого такова:
Есть форма в которой есть заголовок и теги.
Ошибка указывает на теги, точнее на строку функции, где отсекаются теги html php, и передается в чистом виде значение. var_dump() почему-то в этой функции передает заголовок
string(9) "запись" - "запись" это заголовок. А тегов здесь нет.
echo $string выводит заголовокArray
потому что массив двумерный, поэтому array выводится
 
У тебя этот код в скрипте 2 раза отрабатывает.
1й раз номальные данные: string(9) "запись"
2й раз прилетает массив: array(1) { [0]=> string(1) "5" }

По хорошему нужна фильтрация данных:
PHP:
if (is_array($string)) {
  return;
   // или 
  throw new Exception('Ошибка в данных'); 
}
 
Назад
Сверху