2013-07-22 5 views
3

사용자가 웹 사이트에 자신의 전자 메일을 암호로 등록하고 고유 한 핀을 반환 할 수있는 다음 코드가 있습니다.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> 

나는 사용자가 필요없이 액세스 할 수있는 상대적으로 보안 관리자 페이지를 만들 수 있도록 각 사용자 (server.com/[unique-9-digit-alphanumeric-code]에 고유 URL을 연결할

PHP 함수를 사용하여 쉽게 할 수 있습니까? (길고 무작위로 9 자리가 아니어도됩니다.) 또는 내 자신의 임의 알파 - 숫자 문자열을 입력 한 다음 데이터베이스에 게시 하시겠습니까? 이것을 코딩하는 방법은 무엇입니까?

+2

hash(), md5(), sha1()과 같은 해시 알고리즘 함수를 사용하여 문자열 – bugwheels94

답변

1

많은 경우,이 고유 한 문자열이 필요한 경우이 mysql 쿼리를 사용합니다. HIGH_PRIORITY 선택 UNIX_TIMESTAMP(); 을 사용하여 1374517262와 같이 고유 한 10 자리 숫자를 얻은 다음 문자를 추가하거나 앞에 추가하십시오.

1

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

이 무작위 발음 할 수있는 암호를 생성하는 좋은 기능입니다. 이것은 당신이 성취하고자하는 것에 가까이 다가 갈 수 있도록 도와줍니다.