if (is_array($_GET['m_c_s']) && count($_GET['m_c_s']) ) {
Тогда еще такой вариант
Модератор: immortal
if (is_array($_GET['m_c_s']) && count($_GET['m_c_s']) ) {
Заменилtarasfrompir писал(а): ↑Чт апр 09, 2020 1:42 pmif (is_array($_GET['m_c_s']) && count($_GET['m_c_s']) ) {
Тогда еще такой вариант
Код: Выделить всё
[Thu Apr 09 14:03:01.956627 2020] [php7:warn] [pid 5168:tid 1960] [client 127.0.0.1:54085] PHP Warning: in_array() expects parameter 2 to be array, null given in D:\\xampp\\htdocs\\modules\\objects\\objects.class.php on line 506
[Thu Apr 09 14:03:02.019132 2020] [php7:warn] [pid 5168:tid 1960] [client 127.0.0.1:54085] PHP Warning: in_array() expects parameter 2 to be array, null given in D:\\xampp\\htdocs\\modules\\objects\\objects.class.php on line 506
[Thu Apr 09 14:03:02.072519 2020] [php7:warn] [pid 5168:tid 1924] [client 127.0.0.1:54090] PHP Warning: in_array() expects parameter 2 to be array, null given in D:\\xampp\\htdocs\\modules\\objects\\objects.class.php on line 506
[Thu Apr 09 14:03:02.135016 2020] [php7:warn] [pid 5168:tid 1924] [client 127.0.0.1:54090] PHP Warning: in_array() expects parameter 2 to be array, null given in D:\\xampp\\htdocs\\modules\\objects\\objects.class.php on line 506
[Thu Apr 09 14:03:03.119130 2020] [php7:warn] [pid 5168:tid 1960] [client 192.168.8.108:45184] PHP Warning: in_array() expects parameter 2 to be array, null given in D:\\xampp\\htdocs\\modules\\objects\\objects.class.php on line 506
[Thu Apr 09 14:03:03.237524 2020] [php7:warn] [pid 5168:tid 1960] [client 192.168.8.108:45184] PHP Warning: in_array() expects parameter 2 to be array, null given in D:\\xampp\\htdocs\\modules\\objects\\objects.class.php on line 506
[Thu Apr 09 14:03:10.625385 2020] [php7:warn] [pid 5168:tid 1960] [client 192.168.8.104:19728] PHP Warning: in_array() expects parameter 2 to be array, null given in D:\\xampp\\htdocs\\modules\\objects\\objects.class.php on line 506
[Thu Apr 09 14:03:20.529929 2020] [php7:warn] [pid 5168:tid 1924] [client 192.168.8.104:3894] PHP Warning: in_array() expects parameter 2 to be array, null given in D:\\xampp\\htdocs\\modules\\objects\\objects.class.php on line 506
Код: Выделить всё
function callMethodSafe($name, $params = 0) {
startMeasure('callMethodSafe');
$current_call = $this->object_title . '.' . $name;
$call_stack = array();
if (is_array($params)) {
if (isset($params['m_c_s']) && is_array($params['m_c_s']) && !empty($params['m_c_s'])) {
$call_stack = $params['m_c_s'];
DebMes($params['m_c_s']);
}
$raiseEvent = $params['raiseEvent'];
unset($params['raiseEvent']);
unset($params['m_c_s']);
$current_call .= '.' . md5(json_encode($params));
}
if (IsSet($_SERVER['REQUEST_URI']) && ($_SERVER['REQUEST_URI'] != '')) {
if (isset($_GET['m_c_s']) && is_array($_GET['m_c_s']) && !empty($_GET['m_c_s'])) {
$call_stack = $_GET['m_c_s'];
}
$raiseEvent = $_GET['raiseEvent'];
if (in_array($current_call, $call_stack)) {
$call_stack[] = $current_call;
DebMes("Warning: cross-linked call of " . $current_call . "\nlog:\n" . implode(" -> \n", $call_stack));
return 0;
}
}
if (!is_array($params)) {
$params = array();
}
$call_stack[] = $current_call;
$params['raiseEvent'] = $raiseEvent;
$params['m_c_s'] = $call_stack;
if (IsSet($_SERVER['REQUEST_URI']) && ($_SERVER['REQUEST_URI'] != '') && !$raiseEvent && count($call_stack)>1) {
$result = $this->callMethod($name, $params);
} else {
$result = callAPI('/api/method/' . urlencode($this->object_title . '.' . $name), 'GET', $params);
}
endMeasure('callMethodSafe');
return $result;
}
Сейчас норм, в логе пусто,DebMes тоже ничего не выводит.tarasfrompir писал(а): ↑Чт апр 09, 2020 2:24 pmзамени всю функцию
Код: Выделить всё
function callMethodSafe($name, $params = 0) { startMeasure('callMethodSafe'); $current_call = $this->object_title . '.' . $name; $call_stack = array(); if (is_array($params)) { if (isset($params['m_c_s']) && is_array($params['m_c_s']) && !empty($params['m_c_s'])) { $call_stack = $params['m_c_s']; DebMes($params['m_c_s']); } $raiseEvent = $params['raiseEvent']; unset($params['raiseEvent']); unset($params['m_c_s']); $current_call .= '.' . md5(json_encode($params)); } if (IsSet($_SERVER['REQUEST_URI']) && ($_SERVER['REQUEST_URI'] != '')) { if (isset($_GET['m_c_s']) && is_array($_GET['m_c_s']) && !empty($_GET['m_c_s'])) { $call_stack = $_GET['m_c_s']; } $raiseEvent = $_GET['raiseEvent']; if (in_array($current_call, $call_stack)) { $call_stack[] = $current_call; DebMes("Warning: cross-linked call of " . $current_call . "\nlog:\n" . implode(" -> \n", $call_stack)); return 0; } } if (!is_array($params)) { $params = array(); } $call_stack[] = $current_call; $params['raiseEvent'] = $raiseEvent; $params['m_c_s'] = $call_stack; if (IsSet($_SERVER['REQUEST_URI']) && ($_SERVER['REQUEST_URI'] != '') && !$raiseEvent && count($call_stack)>1) { $result = $this->callMethod($name, $params); } else { $result = callAPI('/api/method/' . urlencode($this->object_title . '.' . $name), 'GET', $params); } endMeasure('callMethodSafe'); return $result; }
Код: Выделить всё
function callMethodSafe($name, $params = 0) {
startMeasure('callMethodSafe');
$current_call = $this->object_title . '.' . $name;
$call_stack = array();
if (is_array($params)) {
if (isset($params['m_c_s']) && is_array($params['m_c_s']) && !empty($params['m_c_s'])) {
$call_stack = $params['m_c_s'];
}
$raiseEvent = $params['raiseEvent'];
unset($params['raiseEvent']);
unset($params['m_c_s']);
$current_call .= '.' . md5(json_encode($params));
}
if (IsSet($_SERVER['REQUEST_URI']) && ($_SERVER['REQUEST_URI'] != '')) {
if (isset($_GET['m_c_s']) && is_array($_GET['m_c_s']) && !empty($_GET['m_c_s'])) {
$call_stack = $_GET['m_c_s'];
}
$raiseEvent = $_GET['raiseEvent'];
if (in_array($current_call, $call_stack)) {
$call_stack[] = $current_call;
DebMes("Warning: cross-linked call of " . $current_call . "\nlog:\n" . implode(" -> \n", $call_stack));
return 0;
}
}
if (!is_array($params)) {
$params = array();
}
$call_stack[] = $current_call;
$params['raiseEvent'] = $raiseEvent;
$params['m_c_s'] = $call_stack;
if (IsSet($_SERVER['REQUEST_URI']) && ($_SERVER['REQUEST_URI'] != '') && !$raiseEvent && count($call_stack)>1) {
$result = $this->callMethod($name, $params);
} else {
$result = callAPI('/api/method/' . urlencode($this->object_title . '.' . $name), 'GET', $params);
}
endMeasure('callMethodSafe');
return $result;
}
Как бы узнать какие именно? Я сделал переезд в новую сборку, но со своей базой данных. Ошибок по SQL пока не наблюдаю. Но как то не спокойно. Придется сравнивать структуру пустой базы данных из архива новой сборки и старой своей.tarasfrompir писал(а): ↑Чт май 02, 2019 12:59 pmНам необходимо скачать АЛЬФА версию Мажордомо с гитхаба (поскольку в ней внесены изменения в базу данных)
На 2 мая 2019 года.
Это нужно для чистой установки, - не хватало каких то свойств в б.д. Так что если не пишет что чего то нету - то все нормально.Bagir писал(а): ↑Ср апр 22, 2020 9:13 amКак бы узнать какие именно? Я сделал переезд в новую сборку, но со своей базой данных. Ошибок по SQL пока не наблюдаю. Но как то не спокойно. Придется сравнивать структуру пустой базы данных из архива новой сборки и старой своей.tarasfrompir писал(а): ↑Чт май 02, 2019 12:59 pmНам необходимо скачать АЛЬФА версию Мажордомо с гитхаба (поскольку в ней внесены изменения в базу данных)
На 2 мая 2019 года.