2010-01-21 8 views
0

한 번에 한 가지 질문으로 10 개의 질문 설문 조사를하고 있습니다. 질문 사이에 값을 전달하기위한 세션을 만들었습니다. 내가 발견 한 것은 페이지 값을 새로 고침해도 세션 값이 파괴되지 않는다는 것입니다. 거기에 해결 방법이 있거나 뭔가 잘못하고 있습니다. 당신이 세션 또는 해제() 세션 변수를 종료 할 때까지새로 고침시 PHP 세션이 손상되지 않음

session_start(); 
// $_SESSION['score'] = $score; 
    $_SESSION['qnum'] = isset($_SESSION['qnum']) ? $_SESSION['qnum']+1 : 1; 

    if ($_SESSION['qnum'] < 10){ 
     $_SESSION['total'] = isset($_SESSION['total']) ? $_SESSION['total']+$score : $score; 
    } 
    else if ($_SESSION['qnum'] == 10){ 
     $_SESSION['total'] = isset($_SESSION['total']) ? $_SESSION['total']+$score : $score; 
     echo "finished"; 
    } 

    echo $_SESSION['qnum']; 
    echo '\n'; 
    echo $_SESSION['total']; 

답변

5

$ _SESSION 변수가 남아 :

그냥 일을 명확하게하기 위해, 여기에 코드입니다. 세션을 종료하려면

이 코드를 시도 :

$_SESSION = array(); 
session_unset(); 
session_destroy(); 

세션 변수 사용을 삭제하려면

세션의 전체 지점의
unset($_SESSION['variablename']); 
+2

$ _SESSION 변수는 페이지 새로 고침이 생존 할 때까지 유지됩니다. 사용자가 다른 사람으로 로그인하는 것을 어렵게 만듭니다. –

+0

위 코드에서 어떻게 세션을 삭제하겠습니까? 나는 위의 코드 바로 다음에 세션을 파기하면 전달 호출을 어렵게 만들지 않을 것인가? – amit

+0

전체 세션을 삭제하면 세션에 대한 페이지 전체에서 데이터를 추적하는 목적으로 사용됩니다. 더 이상 필요하지 않은 개별 세션 변수를 삭제하면됩니다. –

2

- 그들은 브라우징 세션 곁에. 평범한 변수를 사용하는 이유는 무엇입니까? 왜 나는 정상적인 변수를 사용하지 않는 것이 좋을까요?

0

이것은 세션 뷰어의 전체적인 아름다움과 개념으로, 파기하지 않을 때 또는 파기하거나 설정을 해제하지 않는 한 파기하지 않습니다. 무슨 문제, 당신의 코드가 완전히 정확합니다, 당신은 세션 변수와 점수로 로컬로 점수와 점수를 저장하고 있습니다. 그냥 퀴즈가 끝날 때 한 가지 일을하십시오. sesion_destroy()를 사용하여 세션을 파괴하십시오.

0

숨김 변수는 귀하의 목적에 맞는 더 나은 도구 일 수 있습니다. 본질적으로 세션 변수는 전체 응용 프로그램을 지속하기 위해 만들어졌습니다 세션.

관련 문제