Очень странное поведение, ничего не нашел в сети. Apache версии 2.4, работающий в Windows (EasyPHP), с текущей версией php 5.6
Браузер запрашивает сайт (index.php?page=kdkarte_logfiles
), с почтовыми данными.
Ответ приходит с веб-сервера, но заканчивается через несколько чанков (чанкованный вывод из Apache).
Firefox запрашивает другой файл (jquery.min.js
), а недостающие фрагменты находятся в ответе на этот второй запрос.
Таким образом, в Firefox (проверено на ie, а также) Это выглядит так (не вся страница ;-)):
index.php?page=kdkarte_logfiles
<!doctype html>
<html>
<head>
<meta charset="utf-8">
<title>AE-Liste v3.0</title>
<script src="javascript/jquery/jquery.min.js"></script>
<head><body>.... SOME TEXT .... Query:
<select name='query'>
<option value='all' selected>Alle</option> <- EOF ->
следующий запрос:
jquery.min.js:
204c
<option value='1'>plus_service2</option><option value='4'>bremsscheibe</option><option value='5'>test</option><option value='6'>abbuchung</option><option value='7'>TESTAP47392000</option><option value='8'>test2</option><option value='9'>Hauptuntersuchung</option></select>
<input type='submit'></form></th></tr>
<tr><th>ID</th><th>GPNR</th><th>Name</th>..... MORE TEXT ....
0
HTTP/1.1 200 OK
Date: Mon, 20 Mar 2017 13:35:29 GMT
Server: Apache/2.4.7 (Win32) PHP/5.6.30
Last-Modified: Wed, 18 Nov 2015 21:26:34 GMT
ETag: "1497f-524d74bedd680"Accept-Ranges: bytes
Content-Length: 84351
Keep-Alive: timeout=5, max=99
Connection: Keep-Alive
Content-Type: application/javascript
... jquery code ...
Во втором ответе вы можете видеть гекс между кусками (204c, 203b и т. Д. И т. Д.)
Глядя на Wireshark, чанки собираются правильно.
Пытался отключить PHP Output Buffering, любое сжатие gzip и т. Д. Ничего не помогло: — /
Следующая информация: код на разрыв выглядит так:
</select>
Query:
<select name='query'>
<option value='all' selected>Alle</option>
<?php
$querys = query("local", true, "SELECT DISTINCT id, name FROM kdkarte_query");
foreach ($querys as $query) {
echo "<option value='".$query['id']."'>".$query['name']."</option>";
}
?>
</select>
поэтому разрыв происходит, если вызывается php (но не в первый раз, а в первый раз при некотором взаимодействии с SQL)
это происходит только в том случае, если выполняется более поздний более крупный SQL-запрос, поэтому, возможно, это проблема с php-> mysql: /, если результат состоит всего из нескольких (скажем, менее 15) строк, все делается правильно. На других страницах с результатами запросов больше 1500 -> нет проблем 🙁
куски в основном размером 8-9k байт
Кстати. посмотрел журнал ошибок apache, ничего.
сделал трассировку с помощью xdebug, вроде бы нормально: /
(я должен спросить парней из cloudflare ?! ;-))
Спасибо за любую помощь или идеи по этому поводу, ребята!
Понял … UTF-8 с BOM сделал это ((
Кодируется в UTF-8 без спецификации, все работает
Других решений пока нет …