2014-03-26 2 views
0

나는 미친 듯이 괴롭히는 이상한 문제가있다 ... 나는 내 자신의 MVC 프레임 워크를 쓰고 있었고, mysql을 사용하여 세션 관리를하고 있었다. session_regenerate_id 함수가 가끔씩 새로운 세션을 생성하는 것으로 나타 났을 때 ... 나는 웹에이 스크립트 을 테스트 한session_regenerate_id execution ... double?

<?php 
if(!isset($_SESSION)){ 
session_start(); 
$_SESSION['user']='kikko68'; 
$_SESSION['name']='cristian'; 
$_SESSION['mail']='[email protected]'; 
} 
$old=session_id(); 
session_regenerate_id(true); 
$new=session_id(); 
echo"OLD = ".$old."<br>NEW = ".$new; 
?> 

: 많은 시간이 지옥이 잘못 될 수 추측 무엇 시도 후, 나는 내 모든 코드를 무시하고이 간단한 PHP 스크립트와 흰색 페이지를 실행하는 데 결국 서버이고 결과는 다음과 같습니다.

---------------load page--------------------- 
OLD = ffa4e90763d61a2f733364fddb86bbf4 
NEW = 7293a7268c77406075c78a38bc148c34 
---------------refresh----------------------- 
OLD = 7293a7268c77406075c78a38bc148c34 
NEW = d21e6da87635fb2934b286679850c830 
---------------refresh----------------------- 
OLD = d21e6da87635fb2934b286679850c830 
NEW = 9686e91f66565358bceaa4bac8d8a563 

새로 고침 할 때마다 새 ID가 오래된 ID가됩니다. 내 로컬 설치에

대신 (XAMPP)는 상황이

---------------load page--------------------- 
OLD = c1vgleb55j0tpeu21mr3l1rip5 
NEW = dn2hfst79nuqtcegi91qikrv34 
---------------refresh----------------------- 
OLD = th1tk5dmaovdlrdka4frf07is0 
NEW = s7a990magimfccc0qtnl66rfp0 
---------------refresh----------------------- 
OLD = hkpadq4pjtbtcmap3m3322al21 
NEW = q17lh3asev8rkv3ld1f4mu2tk0 

누군가가 나에게 이런 일이 이유를 설명 할 수 ... 어떤 의미를 갖고있는 것 같아요? 감사합니다. .

답변

0

서버 결과가 나에게 의미가 있으며 XAMPP 결과는 그렇지 않습니다. XAMPP 환경에서 이전 세션이 전혀 인식되지 않는 것처럼 보입니다. 따라서 session_start()는 새 ID (ID 변경 # 1)로 새로운 것을 만들고 session_regenerate_id() 호출은 ID 변경 # 2 인 새 ID를 만듭니다.

테스트하려면 session_start() 바로 다음에 세션 ID를 캡처하십시오. 질문은 "왜 내 ID가 두 개의 스크립트에서 생성 되는가?"가 아닙니다. "왜 내 스크립트가 session_start()에서 유효한 세션을 찾아로드하지 못하는가?"