자동등록방지 암호를 숫자만 나오도록 할려면 정보
자동등록방지 암호를 숫자만 나오도록 할려면
본문
// 자동등록기를 막아볼까요?
$is_norobot = false;
if ($default[de_use_norobot]) {
// 임의의 md5 문자열을 생성
$tmp_str = substr(md5(time()),0,10);
// 난수 발생기
srand(make_seed());
$keylen = strlen($tmp_str);
$div = (int)($keylen / 2);
while (count($arr) < 3) {
unset($arr);
for ($i=0; $i<$keylen; $i++) {
$rnd = rand(1, $keylen);
$arr[$rnd] = $rnd;
if ($rnd > $div) { break; }
}
}
이 부분에서 문자열이 아니라 숫자를 생성해야 할 것 같은데 어떻게 고쳐야 하나요?
$is_norobot = false;
if ($default[de_use_norobot]) {
// 임의의 md5 문자열을 생성
$tmp_str = substr(md5(time()),0,10);
// 난수 발생기
srand(make_seed());
$keylen = strlen($tmp_str);
$div = (int)($keylen / 2);
while (count($arr) < 3) {
unset($arr);
for ($i=0; $i<$keylen; $i++) {
$rnd = rand(1, $keylen);
$arr[$rnd] = $rnd;
if ($rnd > $div) { break; }
}
}
이 부분에서 문자열이 아니라 숫자를 생성해야 할 것 같은데 어떻게 고쳐야 하나요?
댓글 전체
substr(md5(time()),0,10);
시간을 암호환 한것에서 일부를 추출한 것이 난수가 되는 것 입니다.
이부분을 해결하시려면 10자리만큼 난수를 생성하시면 될 것 입니다.
테스트는 안해 봣습니다. 아래처럼 바꿔보세요.
$tmp_str = substr(rand(0,999999999999999),0,10);
시간을 암호환 한것에서 일부를 추출한 것이 난수가 되는 것 입니다.
이부분을 해결하시려면 10자리만큼 난수를 생성하시면 될 것 입니다.
테스트는 안해 봣습니다. 아래처럼 바꿔보세요.
$tmp_str = substr(rand(0,999999999999999),0,10);

감사합니다. 홈페이지 관리하는 곳에서 이런 것을 원해서요^^

$tmp_str = substr(rand(0,999999999999999),0,10);
==>
$tmp_str = rand(1000000000,9999999999);
^^
==>
$tmp_str = rand(1000000000,9999999999);
^^

$tmp_str = substr(rand(0,999999999999999),0,10);
이렇게 하시면 됩니다.
이렇게 하시면 됩니다.