2014-12-02 4 views
0

임의 코드 (echo rand();)를 생성해야하는 응용 프로그램 (application/controllers/random_number.php)에 CodeIgniter 컨트롤러가 있습니다.rand()는 빠른 AJAX 호출 후 동일한 숫자를 반환합니다.

이제 내가 겪고있는 문제는 해당 컨트롤러에 대한 HTTP 요청을 호출 할 때 실제로는 매초마다 새로운 번호를 생성하므로 내에서 여러 요청을 호출 할 경우 동일한 번호를 반환하는 것 같습니다. 그 시간. for 루프를 실행하여 여러 개의 난수를 반향하면 rand()은 다른 숫자를 반환합니다 (그리고 초가 지나갈 때까지 동일한 숫자 세트를 반환합니다).

왜 그 일을하고 있으며 어떻게 해결할 수 있습니까?

저는 Windows 7 Home Premium, 32-bit에서 CodeIgniter 2.1.3, PHP 5.5.12 및 Apache/2.4.9를 사용하고 있습니다.

편집 : 웹 페이지 캐싱 문제가 아닙니다. DB에 번호를 저장하는 작은 세그먼트를 추가했으며 브라우저가 아닌 응용 프로그램이라는 것을 증명합니다. 여기

http://puu.sh/deoWI/30cf5083e9.png

+0

rand()가 시간을 시드로 사용하고 있기 때문입니다. 보십시오 mt_rand() – DarkBee

+1

@DarkBee 그것은 작동합니다! 정말 고맙습니다. – Ivan

+0

나는 그것을 대답으로 추가 하겠지만 나의 설명은 조금은 단순하다. – DarkBee

답변

2

문제는 rand() 따라서 신속하게 새로운 난수를 생성하지, 시드 메커니즘으로 시간에 의존한다는 것이다.

mt_rand을 대신 사용하십시오.