2014-02-19 2 views
0

데이터베이스에 저장된 세션 ID를 사용하여 세션 변수가 설정되어 있는지 확인해야하는 서버 측 프로젝트를 조금만 수행합니다.ID를 사용하여 세션 데이터를 확인하고 루프 내에서 ID를 변경합니다.

문제는 내가 변수를 설정했는지 확인한 후에 세션을 파괴하고 싶지 않다는 것입니다. 따라서 세션을 시작하지 않고 변수를 검사하거나 세션이 시작될 때 다른 세션 ID로 변경하는 방법을 찾으려면 또는 파괴 할 수있는 다른 세션에 세션을 복제하는 방법이 필요합니다. 여기

내가 가진 무엇 ...

while(true) { 
    $stmt=$db->prepare("SELECT sessionid FROM sessions"); 
    $stmt->execute(); 
    while($row=$stmt->fetch(PDO::FETCH_ASSOC) { 
     session_id($row['sessionid']); 
     session_start(); 
     if(!isset($_SESSION['value'])) { 
      $stmt=$db->prepare("DELETE FROM sessions WHERE sessionid=:sessionid"); 
      $stmt->bindValue(':sessionid',$row['sessionid'],PDO::PARAM_STR); 
      $stmt->execute(); 
     } 
     session_destroy(); 
    } 
    sleep(5); 
} 

답변

0

이 롤을 완료

while(true) { 
    $stmt=$db->prepare("SELECT sessionid FROM sessions"); 
    $stmt->execute(); 
    while($row=$stmt->fetch(PDO::FETCH_ASSOC) { 
     session_id($row['sessionid']); 
     session_start(); 
     session_regenerate_id(false); 
     $newsessionid=session_id(); 
     session_write_close(); 
     session_id($newsessionid); 
     session_start(); 
     if(!isset($_SESSION['value'])) { 
      $stmt=$db->prepare("DELETE FROM sessions WHERE sessionid=:sessionid"); 
      $stmt->bindValue(':sessionid',$row['sessionid'],PDO::PARAM_STR); 
      $stmt->execute(); 
     } 
     session_destroy(); 
    } 
    sleep(5); 
} 

참조 : http://uk1.php.net/manual/en/function.session-regenerate-id.php

관련 문제