Глюки с переменными
Модератор: immortal
-
- Сообщения: 2357
- Зарегистрирован: Пт апр 20, 2012 12:53 pm
- Благодарил (а): 42 раза
- Поблагодарили: 262 раза
Глюки с переменными
Время от времени перестают нормально работать переменные в скриптах и методах. После перекапывания кода выясняется, что переменная просто не работает. Но если её переименовать, то всё становится нормально.
Вопрос. Переменные в скриптах и методах локальные или глобальные? Вроде бы локальные и доказательство этому куча одинаковых переменных типа $i, $v, $a и т. д. в скриптах. Но иногда такая $a (тихо!) перестаёт работать пока не переименуешь её в $a2 или $aa.
Глюк очень неприятный потому, что трудноуловимый. Столкнулся с этим уже в третий раз. Что это за гадость такая?
Вопрос. Переменные в скриптах и методах локальные или глобальные? Вроде бы локальные и доказательство этому куча одинаковых переменных типа $i, $v, $a и т. д. в скриптах. Но иногда такая $a (тихо!) перестаёт работать пока не переименуешь её в $a2 или $aa.
Глюк очень неприятный потому, что трудноуловимый. Столкнулся с этим уже в третий раз. Что это за гадость такая?
- sergejey
- Site Admin
- Сообщения: 4284
- Зарегистрирован: Пн сен 05, 2011 6:48 pm
- Откуда: Минск, Беларусь
- Благодарил (а): 75 раз
- Поблагодарили: 1559 раз
- Контактная информация:
Re: Глюки с переменными
Не сталкивался с подобным... В коде переменные локальные. Если будет пример кода, то смогу посмотреть, в чём дело -- может дело не в переменных, а в самом коде.
Сергей Джейгало, разработчик MajorDoMo
Идеи, ошибки -- за предложениями по исправлению и развитию слежу только здесь!
Профиль Connect -- информация, сотрудничество, услуги
-
- Сообщения: 2357
- Зарегистрирован: Пт апр 20, 2012 12:53 pm
- Благодарил (а): 42 раза
- Поблагодарили: 262 раза
Re: Глюки с переменными
Сначала работало нормально с переменной $temp, потом перестало. После переименования в $temp2 снова заработало. Но это ещё догадаться надо было.
Код: Выделить всё
$ch = curl_init('http://192.168.1.17:8085/data.json');
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
$ohm = curl_exec($ch);
$json = json_decode($ohm);
$cpu = $json -> {'Children'}[0] -> {'Children'}[1];
$cpu_load = $cpu -> {'Children'}[2] -> {'Children'}[0] -> {'Value'};
$temp2 = substr($cpu_load, 0, strpos($cpu_load, ' '));
$load = round($temp2, 1);
sg('analog21.val3', $load);
-
- Сообщения: 9
- Зарегистрирован: Пн фев 11, 2013 9:46 am
- Откуда: Ростов-на-Дону
- Благодарил (а): 0
- Поблагодарили: 0
Re: Глюки с переменными
Подтверждаю, периодически перестают обновляться веб-переменные, если ее переименовать, то начинает работать. Ну или если систему перегрузить (хотя не всегда с первого раза).
Re: Глюки с переменными
Такая же штука. Сегодня вечером приду, буду смотреть к коде, или будем дружно просить помощи автораPop писал(а):Подтверждаю, периодически перестают обновляться веб-переменные, если ее переименовать, то начинает работать. Ну или если систему перегрузить (хотя не всегда с первого раза).
-
- Сообщения: 708
- Зарегистрирован: Сб авг 18, 2012 10:21 am
- Благодарил (а): 26 раз
- Поблагодарили: 183 раза
Re: Глюки с переменными
Мне в таком случае помогает функция "восстановление таблицы" phistory. Т.е. похоже что проблема образуется в момент записи в БД.Snark писал(а):Такая же штука. Сегодня вечером приду, буду смотреть к коде, или будем дружно просить помощи автора
Re: Глюки с переменными
Всё это странно и загадочно... Сервер поднял только вчера, и на следующий же день такая ошибка. При этом ни одного аварийного завершения работы системы/компа не было.Jager писал(а):Мне в таком случае помогает функция "восстановление таблицы" phistory. Т.е. похоже что проблема образуется в момент записи в БД.Snark писал(а):Такая же штука. Сегодня вечером приду, буду смотреть к коде, или будем дружно просить помощи автора
- sergejey
- Site Admin
- Сообщения: 4284
- Зарегистрирован: Пн сен 05, 2011 6:48 pm
- Откуда: Минск, Беларусь
- Благодарил (а): 75 раз
- Поблагодарили: 1559 раз
- Контактная информация:
Re: Глюки с переменными
Ребят, я б помог, но не могу выловить такой глюк. Попробуйте найти систему его возникновения, что б можно было воспроизвести ситуацию -- это 90% пути решения проблемы
Сергей Джейгало, разработчик MajorDoMo
Идеи, ошибки -- за предложениями по исправлению и развитию слежу только здесь!
Профиль Connect -- информация, сотрудничество, услуги
-
- Сообщения: 708
- Зарегистрирован: Сб авг 18, 2012 10:21 am
- Благодарил (а): 26 раз
- Поблагодарили: 183 раза
Re: Глюки с переменными
У меня этот глюк возникает когда я открываю на редактирование ранее созданную web-переменную, после сохранения одна из переменных может перестать обновляться, причем не обязательно та которая редактировалась.sergejey писал(а):Попробуйте найти систему его возникновения
И еще меня волнует почему получается так
хотя период обновления у всех датчиков температуры выставлен в 1 минуту, разбег в диапазоне от 1 до 5 минут.
-
- Сообщения: 45
- Зарегистрирован: Пн май 13, 2013 1:49 pm
- Благодарил (а): 0
- Поблагодарили: 0
Re: Глюки с переменными
Аналогичная проблема, веб-переменные не отрабатываю, в командной строке тишина. Пытаюсь посмотреть последнюю страницу данных таблицы phistory зависает, пытаюсь удалить данные предпоследней страницы выдаёт ошибку: Ошибка SQL-запрос:
SELECT *
FROM `phistory`
LIMIT 183720 , 30
Ответ MySQL:
#1194 - Table 'phistory' is marked as crashed and should be repaired
См.скрин.1
Значит буду восстанавливать таблицу из бэкапа(спасибо создателю за него).
PS: Может он не закрывает что-то? Т.е. посылается запрос на открытие чего-то но не посылает запрос на закрытие, перезагрузка всей системы или движка не помогает.
SELECT *
FROM `phistory`
LIMIT 183720 , 30
Ответ MySQL:
#1194 - Table 'phistory' is marked as crashed and should be repaired
См.скрин.1
Значит буду восстанавливать таблицу из бэкапа(спасибо создателю за него).
PS: Может он не закрывает что-то? Т.е. посылается запрос на открытие чего-то но не посылает запрос на закрытие, перезагрузка всей системы или движка не помогает.
- Вложения
-
- Выделение_061.png (41.9 КБ) 10554 просмотра
Windows. Версия 0.5.0b от 09.08.2013
Но планирую перейти на linux версию
Но планирую перейти на linux версию