Цитата
Однако предложенный способ не совсем подходит под требование теста. Нужно иметь ограничение на доступное значение баллов, т.е. есть всего 11 баллов которые можно распределять на каждом вопросе. В вашей системе нет ограничений и в таком виде можно ставить все 11 вариантов на каждом из вопросе. На js в целом тоже не самый лучший способ такое делать, т.к. валидации на сервере количества баллов не будет, можно отправлять запросы с нужными значениями и опять взломать тест в свою пользу. В идеале сделать валидацию на сервере под каждый вопрос.
- Можно сделать валидацию в шкалах. Создать проверочную шкалу. Если будет взломан JavaScript, то проверочная шкала увидит превышение значений и выдаст сообщение, что результат невалидный. Для этого в функции шкалы можно использовать условный оператор (условие ? истина : ложь) или прямо программировать функции и писать в них if и else if (и любой другой код на PHP):
A();
function A()
{
if(Сумма_баллов_за_вопрос_1 > 11) return 1;
else if(Сумма_баллов_за_вопрос_2 > 11) return 2;
и т.д.
return 0;
}
Можно прописать одно общее условие или на каждый вопрос отдельное условие и при превышении суммы баллов за 11, выдать положительное значение, а если все нормально, то 0. И в делениях прописать если 0, то ничего не выводить (пустая строка), а если положительное значение, то вывести ошибку, и можно даже конкретно указать на номер вопроса (если функция будет возвращать 33 значения и прописать 33 деления для каждого вопроса).
Поэтому не вижу никаких проблем со взломом JavaScript, т.к. шкалы вычисляются на сервере и это обойти не получится.
Цитата
Вы говорили про sql запросы. Интересно бы почитать как их можно использовать из системы при подсчете значений. И вообще документацию бы почитать такую расширенную, та что есть на сайте эти проблемы не охватывает.
- Такой документации нет, т.к. там задач может быть огромное множество, а писать книги по программированию это не наш профиль, мы предоставляем готовый продукт, а если кому-то что-то нужно узкоспециализированное, то консультируем в индивидуальном порядке.