Почему для некоторых пользователей Windows, использующих мою надстройку Office, должен выполняться PHP-скрипт? - PullRequest
0 голосов
/ 13 октября 2019

У меня есть простой вызов 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 продолжает пытаться и завершить ... даже если отправляющая машина былапринудительная остановка и / или очистка кэша ...

...