Возможно я не правильно понял всю суть вопроса, но все-же.
Я думаю, изначально, не нужно на клиентской части генерировать никаких кодов. После отправки post запроса, на сервере вы можете взять какую-то часть данных типа email и на основе его длинны, например, сгенерировать какой-то произвольный код.
Далее в db можно создать таблицу и занести туда данные:
id email code is_activated
============================================
1 | user@site.com | h57hda4fasd | 0 (false)
При последующей отправке спасибо-кода (не знаю просто как его назвать) на стороне клиента, можете посылать ajax запрос на сервер, и сверять данные со строкой, введенной юзером. Если код прошел, то перевести is_activated в true, тем самым предотвратив повторный ввод кода.