Сессии без кук не работают. чтобы стартовать сессию, надо идентифицировать клиента. для этого служат куки.id может передаваться get параметром и id задается при в первом запросе, а отправка данных явно не первый
любые защиты на куках строить бессмысленнокакие защиты, тебе же сказано нужно блокировать повторную отправку данных
2 одинаковых fetch на PHP сервер
а можно и без js(ajax)можно конечно, но не нужно
даже в гуях.
docker-php-ext-install && docker-php-ext-enable
, PDO входит в базовый пакет расширений т.ч. его не нужно ставить отдельно, ну и mysqli ставится дважды