2013-07-22 1 views
3

У меня есть следующий код, который позволяет пользователю зарегистрировать свой электронный адрес на веб-сайте с паролем и возвращает им уникальный PIN-код.Как создать случайную уникальную буквенно-цифровую строку в PHP

<? 
if($_POST['srSubmit'] && $_POST['srEmail'] && $_POST['srPass']) { 
    $conn = mysql_connect('localhost','',''); 
    mysql_select_db("db_test",$conn); 
    while(1) { 
     $pin = rand(111111,999999); 
     $sel = mysql_query("SELECT * FROM formusers WHERE pin = '$pin'"); 
     if(mysql_num_rows($sel) != 0) { continue; } 

     mysql_query("INSERT INTO formusers(email,password,pin) VALUES('".$_POST['srEmail']."','".$_POST['srPass']."','".$pin."')"); 
     if(mysql_affected_rows()!=-1) { 
      echo "Pin:" . $pin; 
      exit; 
     } else { 
      echo "Existing email, try again<br />"; 
     } 
     break; 
    } 

} 
?> 
<form method="POST" action=""> 
<input type="email" name="srEmail" value="" placeholder="Email" /><br /> 
<input type="password" name="srPass" value="" placeholder="Password" /><br /> 
<input type="submit" name="srSubmit" value="Register" /> 
</form> 

Я хочу, чтобы связать уникальный URL-адрес с каждым пользователем (server.com/[unique-9-digit-alphanumeric-code], так что я могу создать относительно безопасную страницу администратора, что пользователи могут получить доступ без необходимости необходимо знать свой пароль.

Есть ли простой способ сделать это с помощью функции PHP (она не должна быть 9 цифр, просто длинная и случайная), или мне нужно создать свой собственный случайный альфа- numeric string, а затем отправить это в базу данных? Как бы вы предложили кодировать это?

+2

использовать функцию хеширования, такую ​​как hash(), md5(), sha1() для генерации строки – bugwheels94

ответ

1

Много раз, когда мне нужна уникальная строка, я использую этот запрос mysql: выберите HIGH_PRIORITY UNIX_TIMESTAMP(); , чтобы получить уникальное 10-значное число, например 1374517262, а затем добавить или добавить символы.

1

http://snipplr.com/view/5444/

Это хорошая функция, которая будет генерировать случайные произносимые пароли. Это может помочь вам приблизиться к тому, что вы пытаетесь выполнить.

Смежные вопросы