Zavus
Новичок
Подскажите.
Делаю функционал 'Запомнить меня' (как тут во втором ответе https://stackoverflow.com/questions/3128985/php-login-system-remember-me-persistent-cookie). Нужно сгенерировать уникальное значение (селектор)
и записать его в базу данных. Если такое значение уже в базе есть, то сгенерировать новое и снова попытаться записать, и продолжать попытку, пока не подберется и не запишется подходящее значение. То есть работа с ошибкой 1062 MySQL.
Почитал в мануале про http://php.net/manual/ru/function.mysql-errno.php , и там в последней заметке один человек пишет:
если не считать всяких глобалов и и устаревшего mysql вместо mysqli, то это вроде то, что мне нужно.
Но эту заметку заминусовали. Так вот, хотелось бы узнать ваше мнение, - заминусовали только из-за уже сказанного, или потому, что нельзя использовать такой подход при обработке 1062?
И если нельзя, то какой тогда использовать подход?
Делаю функционал 'Запомнить меня' (как тут во втором ответе https://stackoverflow.com/questions/3128985/php-login-system-remember-me-persistent-cookie). Нужно сгенерировать уникальное значение (селектор)
и записать его в базу данных. Если такое значение уже в базе есть, то сгенерировать новое и снова попытаться записать, и продолжать попытку, пока не подберется и не запишется подходящее значение. То есть работа с ошибкой 1062 MySQL.
Почитал в мануале про http://php.net/manual/ru/function.mysql-errno.php , и там в последней заметке один человек пишет:
Код:
Function for creating unique md5 keys in a database. If there are duplets, then a new md5-key will be generated. For your use:
function users_md5create($id){
global $mysql_link;
while ($done==0) {
$md5key = md5(time().($id/2).$loop).md5(time().$id.$loop);
$query = "INSERT INTO users_md5create SET md5key='$md5key', fkey='$id', created=UNIX_TIMESTAMP() ";
$mysql_result = mysql_query($query, $mysql_link);
if(mysql_errno($mysql_link)!=1062) $done=1;
$loop++;
}
return($md5key);
}
Но эту заметку заминусовали. Так вот, хотелось бы узнать ваше мнение, - заминусовали только из-за уже сказанного, или потому, что нельзя использовать такой подход при обработке 1062?
И если нельзя, то какой тогда использовать подход?