Вы можете попробовать этот код. Я нашел его раньше, когда у меня возникла проблема, похожая на вашу.
if (isset($_GET['q1mrks']) && isset($_GET['marks']) && isset($_GET['qt1'])) {
$Q1mrks = $_GET['q1mrks'];
$marks = $_GET['marks'];
$qt1 = $_GET['qt1'];
$qtype_qry = mysql_query("
SELECT *
FROM s_questiontypes
WHERE quetype_id = '$qt1'
");
$row = mysql_fetch_assoc($qtype_qry);
$qcode = $row['quetype_code'];
$sq_qry = "
SELECT *
FROM s_question
WHERE quetype_code = '$qcode'
ORDER BY RAND() LIMIT $Q1mrks
";
$sq_qry = mysql_query("
SELECT *
FROM s_question
WHERE quetype_code = '$qcode'
LIMIT $Q1mrks
");
while ($qrow = mysql_fetch_array($sq_qry)) {
$qm = $qrow['marks'] . "<br />";
$total += $qm . "<br />";
}
echo $total . "/" . $marks;
}
Вы не читаете HTTP-запрос от клиента, а просто отправляете ответ и закрываете соединение. Но закрытие сокета, пока есть еще данные для чтения, приведет к возврату соединения обратно клиенту, и это то, что вы увидите в Chrome с помощью ERR_CONNECTION_RESET. Другие браузеры могут вести себя по-другому, и это также проблема синхронизации, если браузер может отобразить ответ перед обработкой сброса.
Чтобы исправить это, сначала прочитайте полный запрос от клиента, прежде чем закрыть сокет.