Перейти к содержимому



ЗАРАБАТЫВАЙ НА
>>ПРОДАЖЕ ШАБЛОНОВ И ПРИВЛЕЧЕНИИ РЕФЕРАЛОВ<<
>>ПОИСКЕ СЛИВЩИКОВ ШАБЛОНОВ<<

Фотография

Нестабильная проверка условия в 6.5.9.4.0


  • Авторизуйтесь для ответа в теме
Сообщений в теме: 23

#1 _User_

_User_

    Продвинутый пользователь

  • Пользователи
  • PipPipPip
  • 40 сообщений

Отправлено 18 Октябрь 2020 - 04:18

Думаю, что наткнулся на баг в МП. В одном шаблоне есть такой код:
[VAR][$secur][-1]
[CLEAR_BUFFER]
[PARSE][тег1][тег2]
[IF][$bool]
    [VAR][$secur][$1]{{получает набор СИМВОЛОВ такого вида "MTYwMzAwMDUyNw=="}}
[ENDIF]
[IF][$secur>0]{{ по недосмотру сравнил "строку" с нулем }}
    [POST][$domen][пост авторизации + $secur]
[ENDIF]

Не знаю по какому параметру условие "строка" ">" нуля (а НЕ "строка" "!=" -1) ВСЕГДА оказывалось верным, но то что оно СПОНТАННО перестало быть верным (несколько раз перезапускал шаблон с добавлением контрольных точек) - думаю баг.

 
Спонтанно потому что ни комп не перезагружался ни минипостер ни даже этот шаблон не перезапускались. Шаблон просто разбудил меня ночью через [PLAY_SOUND] с сообщением, что нет авторизации, хотя до этого несколько недель работал круглосуточно (таймер 60 мин.).
После проверок сайта снифером на предмет изменения поста авторизации, наткнулся на непонятку с условием - исправил условие на "строка" != -1 и все снова норм.
 
Я работаю на версии 6.5.9.4.0, но баг мог перекочевать и в последующие.

  • 0


#2 - Dimon -

- Dimon -

    Продвинутый пользователь

  • Пользователи-L3
  • PipPipPip
  • 482 сообщений

Отправлено 18 Октябрь 2020 - 05:56

C баксом ($www) = false,  без бакса (www) = true. Прикол) раньше не замечал!

[IF][$www>0]
   [DISPLAY][true]
[ELSE]
   [DISPLAY][false]
[ENDIF]

В принципе если что-то не спарсилось и $1>0 будет фальшь. Как по мне это хорошо! 


Сообщение отредактировал - Dimon -: 18 Октябрь 2020 - 07:40

  • 2

#3 - Dimon -

- Dimon -

    Продвинутый пользователь

  • Пользователи-L3
  • PipPipPip
  • 482 сообщений

Отправлено 18 Октябрь 2020 - 07:53

 

 

 

Скорей всего в твоем случае

MTYwMzAwMDUyNw==>0

 

на деле отработало как

MTYwMzAwMDUyNw==>0


  • 0

#4 _User_

_User_

    Продвинутый пользователь

  • Пользователи
  • PipPipPip
  • 40 сообщений

Отправлено 18 Октябрь 2020 - 08:30

Скорей всего в твоем случае

MTYwMzAwMDUyNw==>0

 

на деле отработало как

MTYwMzAwMDUyNw==>0

Теоретически так, но один фиг СТРОКА как-то была равна или больше (ну больше еще можно за уши притянуть (например если оценивалось вообще существование строки как $bool=1), но ни как не равна нулю) И ВДРУГ УЖЕ нет. Это совсем напрягает.


  • 0

#5 - Dimon -

- Dimon -

    Продвинутый пользователь

  • Пользователи-L3
  • PipPipPip
  • 482 сообщений

Отправлено 18 Октябрь 2020 - 08:45

У тебя случайно нет в шаблоне конструкций подобного типа? Где брекпоинт в if

[IF][]
    [BREAK_POINT][br]

[ELSE]
        
[ENDIF]
[GO_TO_BREAK_POINT][br]

  • 0

#6 _User_

_User_

    Продвинутый пользователь

  • Пользователи
  • PipPipPip
  • 40 сообщений

Отправлено 18 Октябрь 2020 - 08:54

 

У тебя случайно нет в шаблоне конструкций подобного типа? Где брекпоинт в if

[IF][]
    [BREAK_POINT][br]

[ELSE]
        
[ENDIF]
[GO_TO_BREAK_POINT][br]

Нет. [BREAK_POINT][login] стоит без всяких условий в самом начале шаба (за долго до всяких парсов и прочего анализа) и [GO_TO_BREAK_POINT][login][5] стоит почти в конце в условии что не спарсился баланс.

Да и важно ли это ?. Хотя в других языка это было бы ошибкой (типа метка возврата может быть НЕ объявлена. По крайней мере так происходит с циклом "FOR").


  • 0

#7 - Dimon -

- Dimon -

    Продвинутый пользователь

  • Пользователи-L3
  • PipPipPip
  • 482 сообщений

Отправлено 18 Октябрь 2020 - 09:04

Я к тому что в МП такую конструкцию использовать нельзя! Будет неправильно отрабатывать else и в целом там прям такая каша начнется.


  • 0

#8 _User_

_User_

    Продвинутый пользователь

  • Пользователи
  • PipPipPip
  • 40 сообщений

Отправлено 18 Октябрь 2020 - 09:09

Я к тому что в МП такую конструкцию использовать нельзя! Будет неправильно отрабатывать else и в целом там прям такая каша начнется.

Нет таких конструкций у меня вообще НЕТ ни где. Как то даже в голову не пришло использовать точку возврата которой может НЕ БЫТЬ. Ведь если прога "под шаблоном" не отрабатывает исключения, то попросту будет краш.


  • 0

#9 - Dimon -

- Dimon -

    Продвинутый пользователь

  • Пользователи-L3
  • PipPipPip
  • 482 сообщений

Отправлено 18 Октябрь 2020 - 09:40

Если сможешь воссоздать ошибку, что бы она наглядно была! Вставил шаблон в МП запустил и вот она! Тогда думаю Djoser найдет время разберется и поправит! А так, ну сам понимаешь. Найди то не знаю что) Вроде есть, а вроде нет)


  • 3

#10 _User_

_User_

    Продвинутый пользователь

  • Пользователи
  • PipPipPip
  • 40 сообщений

Отправлено 18 Октябрь 2020 - 10:08

Если сможешь воссоздать ошибку, что бы она наглядно была! Вставил шаблон в МП запустил и вот она! Тогда думаю Djoser найдет время разберется и поправит! А так, ну сам понимаешь. Найди то не знаю что) Вроде есть, а вроде нет)

А это как ?? :blink:  Воссоздать ошибку. Я вроде написал, что шаб работал несколько недель (~5-7 недель) без ошибок со стороны моего кода (ошибки типа сервер не доступен (МТС мне периодически сеть рубит) или превышен таймаут отрабатывались как и было задумано). Единственная правка шаба с момента запуска "на постоянку" была 3 дня назад, когда на сайте изменили [POST] запрос на авторизацию. И после этого еще 3 дня ни единого глюка, без остановок и перезапусков. А тут под утро такой сюрприз, когда я даже и за компом не сидел уже как несколько часов (спал). Что воспроизводить то ? и как ? (Условие выполнялось и при том же раскладе ОПа.... и перестало. ("вроде есть, а вроде нет" ну ни разу не к месту - совершенно конкретное условие, а не какое-то, где-то или может быть [POST] был отправлен не правильный, а я именно в теле условия поставил [LOG_DISPLAY] и выяснил что запрос перестал отправляться совсем) Причем ВЫПОЛНЯЛОСЬ НЕ ВЕРНОЕ условие, несколько недель, а теперь перестало)

Все вразумительные "если" и "может быть" уже вроде обсудили.

 

Для конкретики уточню: Много десятков раз, на протяжении нескольких дней переменная содержащая "строку" была больше нуля (не понятно только по какому параметру было сравнение - оно в принципе не корректно (если только в МП не используется неявное приведение типов) и было написано по недосмотру (всеравно что делить число на ноль и получать тоже число)). И ВДРУГ эта переменная перестала быть больше ноля, что было многократно проверено как в самом шабе так и выписано для прогона отдельно. КАК можно воссоздать и тем более конкретно такое в шаблон вписать для отправки на форум ??


Сообщение отредактировал _User_: 18 Октябрь 2020 - 13:29

  • 0




Количество пользователей, читающих эту тему: 0

0 пользователей, 0 гостей, 0 анонимных