} } //If it was the last question, finish the attempt if ($arTest["PASSAGE_TYPE"] < 2) { $arProgress = CTestResult::GetProgress($sessAttemptID); if ($arProgress["TODO"] == 0) { $rsTestAttempt = new CTestAttempt(); $rsTestAttempt->AttemptFinished($sessAttemptID); $rsAtt = CTestAttempt::GetByID((int) $sessAttemptID); if (($arAtt = $rsAtt->GetNext()) && $arTest["APPROVED"] == "Y") { $arAtt["CORRECT_COUNT"] = CTestResult::GetCorrectCount($arAtt["ID"]); $sessAttempt = $arAtt; } $sessAttemptID = null; $sessAttemptFinished = true; } elseif ($arTest["INCORRECT_CONTROL"] == 'Y' && CTestAttempt::IsTestFailed($sessAttemptID, $arTest["COMPLETED_SCORE"])) { $rsAttempt = new CTestAttempt(); $rsAttempt->AttemptFinished($sessAttemptID); $rsAtt = CTestAttempt::GetByID((int) $sessAttemptID); if (($arAtt = $rsAtt->GetNext()) && $arTest["APPROVED"] == "Y") { $arAtt["CORRECT_COUNT"] = CTestResult::GetCorrectCount($arAtt["ID"]); $sessAttempt = $arAtt; } $sessAttemptID = null; $sessAttemptFinished = true; LocalRedirect($arResult["REDIRECT_PAGE"]); } } //User wants to finish if (strlen($_REQUEST["finish"]) > 0 && $sessAttemptID) { $rsAttempt = new CTestAttempt();