Файлы cookie полезны при хранении данных во время (одного) сеанса, но, насколько я понимаю, вы хотите иметь возможность восстановить предыдущий прогресс из старого сеанса в новом сеансе. Поэтому вам нужно будет хранить прогресс в другом месте, например, в базе данных.
Если данные сеанса должны сохраняться только при явном выходе пользователя из системы, вы можете сохранить данные сеанса при вызове метода logout () и затем загрузить их в login (). Но это означает, что, например, по истечении времени сеанса данные из текущего сеанса могут быть потеряны (!) и, следовательно, вероятно, нежелательны.
Другое решение может заключаться в том, чтобы иметь что-то вроде «точек сохранения», определенных этапов в викторине, где данные хранятся в более постоянном хранилище (например, в вышеупомянутой базе данных).