2014-09-10 7 views
0

단일 사용 코드를 표시하고 다시 사용할 수 없도록 코드를 삭제하기 위해 양식 확인을 사용하고 싶습니다. 지금까지이게 내가 가지고있는 것입니다 :임의의 값을 배열에서 제거

$codes = array(
    '810', 
    '0190', 
    '1924', 
    '481', 
    '2941', 
    '8777', 
    '092', 
    '432', 
    '984', 
    '172', 
    '8483' 
); 

$rand_code = array_rand($codes); 
$code_gen = $codes[$rand_code]; 

return $confirmation = 'Here is your code:' . $code_gen; 

이것은 완벽하기 때문에 양식을 제출할 때마다 임의 코드가 표시됩니다. 실제로 코드를 저장하고 다시 사용하지 않아야합니다. 최선의 해결책은 무엇입니까? 어떤 도움이라도 대단히 감사하겠습니다.

+0

하드 코드 된 배열 대신 데이터베이스 사용 – developerwjk

+1

데이터를 나중에 사용해야합니까? 그것을 무시하고 싶지 않으십니까? 세션, 쿠키, 데이터베이스, 텍스트 파일 또는 기타 존재할 수있는 형태의 저장소를 살펴 보았습니까? – Ohgodwhy

+0

왜'md5()'를 사용하지 않는가? 그리고 결과 문자열을 줄이는 것보다 짧게하고 싶다면. – Dan

답변

0

무작위로 하나를 가져온 다음 임의로 꺼내려면 셔플하십시오.

shuffle($codes); 

while($code_gen = array_pop($codes)){ 
    return $confirmation = 'Here is your code:' . $code_gen; 
} 
0

datetime을 티켓 번호 앞에 추가하면 저장하지 않아도 번호가 다시 사용되지 않습니다. (우리에게는 시간 여행자가없는 한).

110912032634 = 티켓 1 110,912,032,785 = 티켓 2

당신은 세션 사용 세션, 등등 ...에

는 "나중에"을 의미하는 경우 "이후에"의미하는 경우 한 달에 수집 한 후 데이터를 저장 한 다음 데이터베이스에 저장하십시오.

관련 문제