Знатокам PHP

12
Юпи-с
На сайте с 30.07.2006
Offline
230
1206

Обновил php на сервере до 5.3.6, до этого было 5.2, перестало кое что работать, выдает ошибку

Warning: substr() expects parameter 2 to be long, string given in /var/www/u015/data/www/site.ru/dvrt/view.inc.php on line 716
'http://site.ru/dv/adclick.php?banner_id=973&dest=http%3A%2F%2Fwww.dp+bolvw.net%2Fclick-59-10479079&ismap=' target='_blank'>���� �� 1 $. ��������� �������

Что это? Как лечится?

Спасибо.

LEOnidUKG
На сайте с 25.11.2006
Offline
1724
#1

Код то сам покажите.

Возможно, что ошибка выше, и до substr не доходит второй параметр.

✅ Мой Телеграм канал по SEO, оптимизации сайтов и серверов: https://t.me/leonidukgLIVE ✅ Качественное и рабочее размещение SEO статей СНГ и Бурж: https://getmanylinks.ru/
D
На сайте с 14.01.2007
Offline
153
#2

по-моему, всё есть:

файл:/var/www/u015/data/www/site.ru/dvrt/view.inc.php

строчка:line 716

в чём проблема:substr() expects parameter 2 to be long

что не ясно?

LEOnidUKG
На сайте с 25.11.2006
Offline
1724
#3

Так же второй параметр может поступать не integer, а string. Тоже может ругаться.

LEOnidUKG добавил 26.08.2011 в 17:39

Dinozavr:
по-моему, всё есть:
файл:/var/www/u015/data/www/site.ru/dvrt/view.inc.php
строчка:line 716
в чём проблема:substr() expects parameter 2 to be long

что не ясно?

Спасибо кэп за ентеры после строк :)

Юпи-с
На сайте с 30.07.2006
Offline
230
#4

Вот код

if ($quotepos > 0)
{
$endquotepos = strpos($lowerbanner, $quotechar, $quotepos+1);

if (substr ($html, $quotepos+1, 10) != '{target_url')
{
$newbanner = $newbanner .
substr($html, $prevhrefpos, $hrefpos - $prevhrefpos) .
$quotechar . $fla_ads_application_url . '/adclick.php?banner_id=' .
$banner_id . '&dest=' .
urlencode(substr($html, $quotepos+1, $endquotepos - $quotepos - 1)) .
'&ismap=';
}
else
{
$newbanner = $newbanner .
substr($html, $prevhrefpos, $hrefpos - $prevhrefpos) . $quotechar .
substr($html, $quotepos+1, $endquotepos - $quotepos - 1);
}

$prevhrefpos = $hrefpos + ($endquotepos - $quotepos);
}
else

716 строчка - substr($html, $prevhrefpos, $hrefpos - $prevhrefpos) .

LEOnidUKG
На сайте с 25.11.2006
Offline
1724
#5

substr($html, $prevhrefpos, $hrefpos - $prevhrefpos) .

замените на

substr($html, intval($prevhrefpos), $hrefpos - $prevhrefpos) .

Z1
На сайте с 09.12.2005
Offline
164
#6

А где $prevhrefpos берётся? Похоже, что оно не числовое, а строчное...

LEOnidUKG
На сайте с 25.11.2006
Offline
1724
#7
zweroboy1:
А где $prevhrefpos берётся? Похоже, что оно не числовое, а строчное...

Уже говорил об этом: /ru/forum/comment/9357440

А вообще может быть и нет его там. Поэтому пусть будет хоть 0 там.

Юпи-с
На сайте с 30.07.2006
Offline
230
#8

LEOnidUKG, ура, заработало.

Спасибо. Как всегда ваши советы помогли.

Z1
На сайте с 09.12.2005
Offline
164
#9
LEOnidUKG:
Уже говорил об этом: /ru/forum/comment/9357440
А вообще может быть и нет его там. Поэтому пусть будет хоть 0 там.

Ну приводить неизвестно что к integer совсем не айс :) Warning-то исчезнет, но логика может быть нарушена.

T
На сайте с 20.03.2007
Offline
67
Toy
#10
zweroboy1:
Ну приводить неизвестно что к integer совсем не айс :) Warning-то исчезнет, но логика может быть нарушена.

Вы че прикалываетесь? Второй параметр у substr должен быть целочисленный. Какая логика тут может быть нарушена?

12

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий