ThunderCat, да я как то даже и не думал по счет облачный решений, я их почему то с nodejs соотношу, нужно попробовать, плюс по счет перебора я решил тогда для безопасности стоит jwt токен генерировать с жизнью минут на 5 максимум, спасибо за толковые ответы
ThunderCat, тогда жду решение с учетом уже описанных 2 целей, не важно что в этом мало смысла просто есть такая цель, как увижу его удалю свой ответ (или поменяю на твой) а так пока что этот код может и выглядит громоздким но по крайней мере достигает этих двух целей
rPman, по какой базе? я в вопросе вообще не писал что использую какую то бд, высланное число я сохраняю в сессии, пока что, а что касается злоумышленников то я все равно потом эту сессию закрою и все, ответ будет 400 на такие запросы
ThunderCat, ну учитывая что я пока без базы и только пилю бэк (вообще не понятно будет ли там база) то решил использовать то о чем знал и представлял как работает, хотя помню много где используется твой вариант но над ним еще подзапариться надо, спасибо, возьму на заметку этот вариант
ThunderCat, отсеиваю что бы в нем не было подряд повторяющихся чисел, по мне так хороший код для достижения двух целей (то что выше написал плюс sprintf('%06d', random_int(0, 999999)))
ThunderCat, хороший вариант если не прикапываться к повторяющимся числам, сохраню его, про sprintf не слышал так что можно посмотреть что с ней еще можно придумать
ThunderCat, выложил что бы в будущем если появиться повторное желание использовать такой формат взять этот пример и плюс если кому то как и мне будет мало random_int(100000, 999999), на рейтинг мне в принципе побоку как то я тут только в основном вопросы задаю и редко отвечаю, по поводу ответа Sanes я уже разъяснил, такой вариант хоть и покрывает необходимость но я предпочел реализовать тот формат который мне нужен, по поводу самого кода жду вашего решения (000000 -> 999999) с отсеиванием повторяющихся значений раз уж за кучу ифов и циклов зашла речь)
Sanes, диапазона может и достаточно но вряд ли это нормальное поведение, я решил что код подтверждения должен быть именно такой формы и от этого писал код, твой вариант хорош (и банален так как его можно получить по первому ответу в поиске) если не брать приведенную выше причину
Сергей Соколов, подтверждение почты не в плане в учетной записи а при восстановлении пароля например, обычная операция, вводим email, я на бэке проверяю что есть учетка с таким email и создаю сессию в которую кладу это число, ну и время старта для того что бы исключить залипание, на 60 секунд например, генерю число и отсылаю его на почту если с ней все ок, далее просто сверяю то что потом ввел юзер с данными в сессии и тд, не знаю к чему тебе эта инфа но я такую штуку вроде второй раз только делаю так как в основном только фронтом занимаюсь
Сергей Соколов, в while все что я делаю так проверяю прошлое число и все, никаких бесконечных циклов там в приницпе не может быть, если только каким то чудом random_int не начнем генерировать одно и тоже число
не правильный ответ, этот вариант сгенерирует число от 100000, в случае с кодом подтверждения там должно быть от 000000 до 999999, соответственно в формате строки, в любом случае это остается числом
ThunderCat, в плане? если есть какие то вопросы, задавай или предлагай, я попробовал и сделал так, если не нравиться то к своей "аутофелляция" можно добавить немного разъяснений, в чем этот код плох и тд
Сергей Соколов, Exception может бросить random_int судя по phpstorm, по поводу параметра $length, каким боком там будет бесконечный цикл если этот параметр влияет только на for а не while? жду примеров