Ситуация такова:
1. При регистрации пользователя в таблицу mysql записывается произвольная строка, которая отправляется пользователю на почту вместе со ссылкой на мой сайт.
2. Пользователь кликает по этой ссылке, далее php сверяет эту ссылку с базой данных, и, если такая строка найдена в БД, то пользователь регистрируется, а произвольная строка напротив его имени обнуляется.
Вот в чём вопрос: как мне сделать проверку, существует ли только что созданная произвольная строка в БД?
И, если она существует, то надо сгенерировать новую.
Вот мой код на PHP & MySQL:
PHP:
скопировать код в буфер обмена
скопировать код в буфер обмена
- $temp = substr(str_shuffle("0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ"), 0, 20); #формирую строку
- $p = 0;
- $r[] = $n['temp'];
- }
- foreach($r as $name){ #проверяю на существование такой же строки
- if ($name == $temp){
- $p = 1;
- }
- }
- if ($p == 1){ #если такая есть, то генерирую новую пока она не станет уникальной
- do {
- $temp = substr(str_shuffle("0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ"), 0, 20);
- $p = 0;
- foreach($r as $name){
- if ($name == $temp){
- $p = 1;
- }
- }
- }
- while ($p != 1);
- }
- echo $temp;