@ADSoft главный предпосыл - это то, чтобы при обновлении страницы и соглашении с повторной отправкой данных по F5 они не отправились, а так же чтобы они не отправились при свайпе страниц на девайсах с нажатием кнопок форм а вот защита от курла - это уже второе: возникли мысли не связать ли их до кучи и я всё-равно не догоняю: ну получили мы из кук ключ сессии ну и отправили их назад, НО ведь на скрипте стоит session_start и при curl_exec, который прислал нам полученный (ПРОШЛЫЙ) ключ сессии, по session_start будет сгенерен новый SID, который не совпадёт с присланным, тут даже session_regenerate_id() не нужна для обновления сида, она тут только для физического нажатия кнопки
1. От повторной отправки обычно редирект ставят на другую страницу в контроллере, если Аякс - блокируют кнопку на момент отправки + при успехе очищают форму 2. не будет, если curl примет куки, а при повторном запросе - передаст их - для сервера это тот же клиент будет, session_start() стартует сессию, а не перегенерирует каждый раз.... regenerate - да... но оно отработает только при успешной отправке получается ... цель спамера достигнута. Большую часть простых спамеров конечно отсеет - не каждый будет заморачиваться искать че там передать, куки итд
то есть нужно сэмулировать поведение клиента c куками, а не просто забрать и попытаться подсунуть SID