X   Сообщение сайта
(Сообщение закроется через 2 секунды)

Здравствуйте, гость ( Вход | Регистрация )

> Правила создания тем

1. В этой ветке обсуждаются ТОЛЬКО ошибки, записанные в логах системы или сервера.
2. В заголовке темы четко покажите название ошибки или ее номер.
3. В сообщении же приведите полный текст ошибки, ее адрес (имя файла и номер строки), файл, в котором возникает ошибка.
При нарушении правил, изложенных выше - тема удаляется без предупреждения.

 
Ответить в данную темуНачать новую тему
> Ошибка Warning: strpos() [<a href='function.strpos'>function.strpos</a>]
LEXSOR
сообщение 2011-01-30, 10:41
Сообщение #1
Заглянувший
Иконка группы

Группа: Eleanor user
Сообщений: 9
Регистрация: 2011-01-29
Из: Рязань

Репутация:   нет  
Всего: нет


Уже таких ошибок около 20 идут подряд


Warning: strpos() [<a href='function.strpos'>function.strpos</a>]: Empty delimiter Line: 499 in file /var/www/u1421030/data/www/rai-rzn.ru/classes/others/class_editor.php
URL: /admin.php?section=modules&key=8fe392d1814d830c3f00ca524d969169&module=news&save=new
Date: 2011-01-29 22:16:09
IP: 86.110.177.81

Warning: strpos() [<a href='function.strpos'>function.strpos</a>]: Empty delimiter Line: 499 in file /var/www/u1421030/data/www/rai-rzn.ru/classes/others/class_editor.php
URL: /admin.php?section=modules&key=8fe392d1814d830c3f00ca524d969169&module=news&save=4
Date: 2011-01-29 22:18:06
IP: 86.110.177.81
Перейти в начало страницы
+Цитировать сообщение
Alexander
сообщение 2011-01-30, 16:08
Сообщение #2
Eleanor developer
Иконка группы

Группа: Администраторы
Сообщений: 5 261
Регистрация: 2008-11-11
Из: Николаев
Версия системы: RC5

Репутация:   нет  
Всего: 67


LEXSOR, это очень-очень вредная ошибка. Можете определить, на какой новости они проявляется и предоставить мне данные для доступа для ее решения?
Перейти в начало страницы
+Цитировать сообщение
LEXSOR
сообщение 2011-01-30, 16:56
Сообщение #3
Заглянувший
Иконка группы

Группа: Eleanor user
Сообщений: 9
Регистрация: 2011-01-29
Из: Рязань

Репутация:   нет  
Всего: нет


самое интересное что новость на сайте 1 всего. вам на мыло данные скинуть?

Сообщение отредактировал LEXSOR - 2011-01-30, 17:00
Перейти в начало страницы
+Цитировать сообщение
Alexander
сообщение 2011-01-30, 19:46
Сообщение #4
Eleanor developer
Иконка группы

Группа: Администраторы
Сообщений: 5 261
Регистрация: 2008-11-11
Из: Николаев
Версия системы: RC5

Репутация:   нет  
Всего: 67


Да, если можно.
Перейти в начало страницы
+Цитировать сообщение
LEXSOR
сообщение 2011-01-31, 22:42
Сообщение #5
Заглянувший
Иконка группы

Группа: Eleanor user
Сообщений: 9
Регистрация: 2011-01-29
Из: Рязань

Репутация:   нет  
Всего: нет


Скинул данные на support@eleanor-cms.ru

Сообщение отредактировал LEXSOR - 2011-01-31, 22:42
Перейти в начало страницы
+Цитировать сообщение
Easy-Web
сообщение 2011-02-09, 11:54
Сообщение #6
Любитель
Иконка группы

Группа: Eleanor user
Сообщений: 132
Регистрация: 2009-08-17
Из: Алма-ата, Казахстан

Репутация:   нет  
Всего: 1


Вроде понял. Происходит баг при замене смайлов. Ошибка происходит опять таки при обработке текстовых переменных. Причем уверен что этот баг вылазит в только с UTF8 , из за непредсказуемости строковых функций при работе с многобайтными кодировками. Потому что если бы в коде была бы ошибка, логи вылезали бы гораздо чаще.

Вообще эта ошибка конкретно для функции strpos говорит о том что пуст второй параметр
Посмотрев на эту констрюкшн мы видим что пустым этот параметр становится от пустого возвращенного значения многобайтной функции mb_substr. В свою очередь, пустое значение скорее всего появляется при использовании неверно расчитанной длины с помощью функции mb_strlen. Раньше приходилось встречаться с неверно расчитанной длиной для некоторых строк, причем никакой закономерности получить не удалось. Поэтому же гонит в UTF и поиск и подсветка найденных слов.

Захотелось ее упростить и вроде получилось.
if(($position===0 or strpos($stop_near,mb_substr($text,$position-1,1))===false)
and (mb_substr($text,$position+$klen,1)=='' or strpos($stop_near,mb_substr($text,$position+$klen,1))===false))


Заменяем в others/class_editor.php
в районе 500 строки
вот этот кусок

if(($position===0 or strpos($stop_near,mb_substr($text,$position-1,1))===false) and (mb_substr($text,$position+$klen,1)=='' or strpos($stop_near,mb_substr($text,$position+$klen,1))===false))
{
    $text=substr_replace($text,$v,$position,$klen);
    $vlen=mb_strlen($v)-$klen;
    $sm_pos+=$vlen;
    /*$arr_dovesok[$i_near]=($i_near>0 and isset($arr_dovesok[$i_near])) ? $arr_dovesok[$i_near]+$vlen : $vlen;*/
    ++$sm_cnt;
}
else
    $sm_pos+=$klen;

на этот кусок:

$text=substr_replace($text,$v,$position,$klen);
$vlen=mb_strlen($v)-$klen;
$sm_pos+=$vlen;
++$sm_cnt;


И все работает прекрасно без логов и без багов. В данный момент проверяется на двух активно работающих сайтах.







Сообщение отредактировал Easy-Web - 2011-02-09, 12:06
Перейти в начало страницы
+Цитировать сообщение
Alexander
сообщение 2011-02-10, 1:51
Сообщение #7
Eleanor developer
Иконка группы

Группа: Администраторы
Сообщений: 5 261
Регистрация: 2008-11-11
Из: Николаев
Версия системы: RC5

Репутация:   нет  
Всего: 67


Easy-Web, в архиве RC5 лежит уже давненько обновленная и избавленная от этого бага. Ваше решение немного некорректо, ибо допускает "наглую" замену смайлами. Вот к примеру на сайте нужно написать форумулу x=(a+b)/z , при этом участок =( ни в коем случае не должен стать смайлом :( . Посмотрите моё решение в текущей версии RC5.

Сообщение отредактировал Alexander - 2011-02-10, 1:55
Перейти в начало страницы
+Цитировать сообщение
Easy-Web
сообщение 2011-02-10, 7:22
Сообщение #8
Любитель
Иконка группы

Группа: Eleanor user
Сообщений: 132
Регистрация: 2009-08-17
Из: Алма-ата, Казахстан

Репутация:   нет  
Всего: 1


Ну раз так, то надо сделать чтобы и url не воспринимался как длинная строка и не разбивался на части. А то в прошлый раз, вы тоже хотели просто удалить фичу:


Цитата
Все решается банальным удалением этого алгоритма.

> http://www.camonitor.com/admin.php?...p;module=blocks
>
> Когда это происходит текст или не отображается или отображается вместе
> с bb-кодами
>
> Решается проблема установкой "Максимальная длина одного слова" в
> максимально большое значение (200-300 символов). Но и это до конца не
> решит проблему, ведь бывают очень длинные url, скорее всего надо при
> вставке тэгов сделать исключение для URL-ов
> или преобразовывать в сокращенный url





Сообщение отредактировал Alexander - 2013-03-31, 2:39
Перейти в начало страницы
+Цитировать сообщение
Alexander
сообщение 2011-02-10, 14:28
Сообщение #9
Eleanor developer
Иконка группы

Группа: Администраторы
Сообщений: 5 261
Регистрация: 2008-11-11
Из: Николаев
Версия системы: RC5

Репутация:   нет  
Всего: 67


Цитата (Easy-Web @ 2020-10-22 04:26)
Ну раз так, то надо сделать чтобы и url не воспринимался как длинная строка и не разбивался на части.

Эту проблему мы отдали на фиксинг в css.
Перейти в начало страницы
+Цитировать сообщение
Easy-Web
сообщение 2011-02-10, 17:29
Сообщение #10
Любитель
Иконка группы

Группа: Eleanor user
Сообщений: 132
Регистрация: 2009-08-17
Из: Алма-ата, Казахстан

Репутация:   нет  
Всего: 1


Цитата (Alexander @ 2011-02-10, 17:28)
Эту проблему мы отдали на фиксинг в css.


Весьма достойное решение. Класс editor просто перегружен кодом, условиями и преобразованиями, которые могут многократно пересекаться и конфликтовать.

Перейти в начало страницы
+Цитировать сообщение

Ответить в данную темуНачать новую тему
0 чел. читают эту тему (гостей: 0, скрытых пользователей: 0)
Пользователей: 0

 
RSS Текстовая версия 0.0449 сек.    12 запросов    GZIP включен    Сейчас: 2020-10-22, 3:26