У меня есть простой вызов javascript в моей надстройке Word для обновления пользовательских настроек.
Пользователи в macOS и (аналогичный код) Chrome Extension используют этот код, и он запускает сценарий php на стороне сервера один раз.
Некоторые пользователи Windows получают сотни вызовов сценариев - даже (по-видимому), когда у них нет открытого Office.
Проблема трудно уловить, потому что я не могу воспроизвести. Но я вижу проблему в моих журналах, а также загрузку сервера.
Мне кажется, что виновником является IE11, который надстройки Office используют в Windows ...
Это как будто процесссрабатывает один раз, а затем несколько раз призраки ... вот как это выглядит в журнале:
[13 / Oct / 2019 06:46:50] (2updateUserDetail) Запуск updateUserDetail ... user /отправитель: 8516 / updateWordPrefs [13 / Oct / 2019 06:46:50] (2updateUserDetail) Запуск updateUserDetail ... пользователь / отправитель: 8516 / updateWordPrefs [13 / Oct / 2019 06:46:50] (2updateUserDetail) Запуск updateUserDetail. ..user / sender: 8516 / updateWordPrefs [13 / Oct / 2019 06:46:50] (2updateUserDetail) Запуск updateUserDetail ... пользователь / отправитель: 8516 / updateWordPrefs [13 / Oct / 2019 06:46:50] (2updateUserDetail) Запуск updateUserDetail ... пользователь / отправитель: 8516 / updateWordPrefs
Я получу 50 или 80 из них подряд, все с одинаковой отметкой времени ... затем еще 50 или 80 сотметка времени через секунду или две.
Вот раздел PHP соde:
if ($sender == 'updateWordPrefs'){
// Update from Word app
$userID = $arrUser['userID'];
$userPrefWordInline = $arrUser['userPrefWordInline'];
$userPrefWordLog = $arrUser['userPrefWordLog'];
$log->lwrite('Starting updateUserDetail...user/sender: '. $userID . ' / ' . $sender);
$query = "UPDATE users SET user_pref_word_inline = " . $userPrefWordInline . ", user_pref_word_log = " . $userPrefWordLog . " WHERE userID = " . $userID;
if(mysqli_query($connection, $query)){
echo "\n\nWord prefs set...";
} else{
echo "ERROR: Was not able to execute $query. " . mysqli_error($connection);
}
mysqli_close($connection);
} // End updateWordPrefs sub
Любые идеи / предложения приветствуются. Я пытаюсь провести диагностику через уязвимых пользователей, но это медленный и неэффективный процесс, если не сказать больше.
Обновление По отзывам пользователей, я считаю, что PHP-скрипт вызвалмой Javascript запускается после закрытия Microsoft Word ... возможно, даже после закрытия IE11.
У меня есть пользователи очищают кэш IE11, и все же процесс запускается ..., что заставляет меня чувствовать, что IE11 запускаеткаким-то образом, и затем мой сервер просто продолжает работать.
Опять же, многие многие пользователи этого кода ... но это затронуло только пользователей Windows. И не все из них.
Еще один паттерн: запускаются вызовы php, затем останавливаются (может быть, мой сервер автоматически убивает процесс?), А затем снова запускаются примерно через час.
IЯ определенно нахожусь на территории жертвоприношения козлов богам Javascript и PHP ... но это заставляет меня думать, что что-то запущено на моем сервере, и каким-то образом мой сервер PHP продолжает пытаться и завершить ... даже если отправляющая машина былапринудительная остановка и / или очистка кэша ...