input에 랜덤입력 방법

input에 랜덤입력 방법

QA

input에 랜덤입력 방법

본문

게시물의 고유번호인것 처럼 하려고 하는건데요.

게시판 글쓰기 할때

wr_1에 5자리 숫자를 임의로 만들어

넣으려고 합니다.

그래서 업데이트 페이지에 

$wr_1=rand(30000,70000); 

해서 임의로 저장되게 해놨는데

문제는 중복이 생기면 안되는데

중복 방지는 어떻게 하는지 아세요?

아니면 영문을 섞어서 사용하는 방법이 있을까요?

다른 방법들도 알아보고 있지만 그방법이 가장 간편할 듯해서요.

이 질문에 댓글 쓰기 :

답변 4

function randomKey($length) { 

$key = "";

$pool = array_merge(range(0, 9), range('A', 'Z')); // 숫자, 영문 소문자, 영문 대문자

for($i=0; $i < $length; $i++){

    $key .= $pool[mt_rand(0, count($pool) - 1)];

}

return $key;

}

$wr_1 = randomKey(8); // 8자리의 랜덤 문자열

echo $wr_1;

 

이런식으로 사용하셔도 될 것 같네요 

확실하게 할려면 무한반복하고 동일값이 없으면 반복문을 끝내시면 될거 같네요

대강 이런식으로 응용하시면됩니다.


<?
$j = 0;
$create_coupon = false;
do {
    $wr_1 = '234092340234'; // 번호
    $sql3 = " select count(*) as cnt from g5_write_게시판명 where wr_1 = '$wr_1' ";
    $row3 = sql_fetch($sql3);
    if(!$row3['cnt']) {
        $create_coupon = true;
        break;
    } else {
        if($j > 20)
            break;
    }
} while(1);
if($create_coupon) {
    $sql = " update g5_write_게시판명
                set wr_1 = '$wr_1' where wr_id = '$wr_id' " ; 
    sql_query($sql); 
}
?>

걍 시간+랜덤값에 md5를 돌리면 case sensitive영문+숫자로 구성된 문자열을 얻으실 수 있습니다.

이걸 5자리로 split해서 사용하시고 이후 중복 확인만 하면 될 듯 합니다.

5자리면 겹치긴 할텐데 숫자보다는 덜 겹치리라 생각 됩니다.

 

답변을 작성하시기 전에 로그인 해주세요.
전체 60,997
QA 내용 검색

회원로그인

(주)에스아이알소프트 / 대표:홍석명 / (06211) 서울특별시 강남구 역삼동 707-34 한신인터밸리24 서관 1404호 / E-Mail: admin@sir.kr
사업자등록번호: 217-81-36347 / 통신판매업신고번호:2014-서울강남-02098호 / 개인정보보호책임자:김민섭(minsup@sir.kr)
© SIRSOFT