PHP 프로그래밍에서 Session_Start () 및 Session_Abort () 는 세션 관리와 관련된 기능입니다. 그것들은 목적과 행동이 다르지만, 함께 사용될 수 있는지, 세션에서 협력하는 방법은 탐구 할 가치가있는 질문입니다. 이 기사는 기능,이 두 기능의 차이점 및 세션을 올바르게 사용하는 방법에 따라 다릅니다.
Session_Start () 는 PHP에서 세션을 시작하는 함수입니다. 스크립트에서 Session_Start ()를 사용한 후 PHP는 세션 데이터 관리를 시작하고 고유 세션 ID를 생성 한 후 서버 측에서 세션 파일을 생성하여 사용자 세션 정보를 저장합니다. 세션 ID가 이미 브라우저에있는 경우 PHP는 해당 세션 데이터와 연결하여 사용자의 세션 상태가 일관되게 유지됩니다.
<span><span><span class="hljs-title function_ invoke__">session_start</span></span><span>();
</span><span><span class="hljs-variable">$_SESSION</span></span><span>[</span><span><span class="hljs-string">'user'</span></span><span>] = </span><span><span class="hljs-string">'John Doe'</span></span><span>;
</span></span>
session_abort () 함수는 현재 세션의 처리를 중단하는 데 사용됩니다. 즉, 현재 세션의 모든 데이터를 폐기합니다. 이 기능을 호출 한 후 PHP는 더 이상 세션 데이터를 저장하지 않지만 세션의 세션 ID를 파괴하지는 않습니다. 이는 세션 ID가 클라이언트의 쿠키에 유지되고 서버 세션 파일이 삭제되지 않음을 의미합니다.
<span><span><span class="hljs-title function_ invoke__">session_abort</span></span><span>();
</span></span>
Session_abort ()를 사용한 후, 세션에서 작성된 모든 수정 (예 : $ _session 배열에 대한 변경)은 폐기됩니다. 이것은 세션의 내용을 일시적으로 변경해야하지만 세션 자체를 변경하고 싶지 않은 경우에는 매우 유용합니다.
이론적으로, session_start () 및 session_abort ()는 함께 사용할 수 있지만,이 두 기능의 동작은 서로 독립적이므로 동일한 스크립트에서 동시에 두 기능을 모두 사용할 필요가 없기 때문에 큰주의를 기울여야합니다.
일반적으로 Session_Start ()는 세션을 시작하고 세션 데이터를 초기화하는 데 사용됩니다. Session_Abort () 가 Session_Abort ()를 호출하기 전에 세션에서 이미 작업하지 않으면 세션_abort ()가 Session_Start () 직후에 호출되는 경우 세션의 데이터는 저장되거나 업데이트되지 않습니다.
<span><span><span class="hljs-title function_ invoke__">session_start</span></span><span>(); </span><span><span class="hljs-comment">// 세션을 시작하십시오</span></span><span>
</span><span><span class="hljs-variable">$_SESSION</span></span><span>[</span><span><span class="hljs-string">'user'</span></span><span>] = </span><span><span class="hljs-string">'John Doe'</span></span><span>; </span><span><span class="hljs-comment">// 세션 데이터를 설정합니다</span></span><span>
</span><span><span class="hljs-title function_ invoke__">session_abort</span></span><span>(); </span><span><span class="hljs-comment">// 세션을 중단합니다,데이터 폐기</span></span><span>
</span></span>
이 예에서는 SESSION_ABORT ()가 세션의 이전 변경 사항을 취소하지 않기 때문에 $ _session [ '사용자'] 에 의해 설정된 값은 폐기됩니다.
대부분의 경우 Call Session_Abort ()는 모든 세션 데이터를 폐기하므로 실용적으로 사용하지 않습니다. 일반적으로 세션 데이터를 지우려면 Session_Unset () 또는 session_destroy () 를 통해 세션을보다 직관적이고 명확하게 작동 할 수 있습니다.
<span><span><span class="hljs-title function_ invoke__">session_start</span></span><span>();
</span><span><span class="hljs-variable">$_SESSION</span></span><span>[</span><span><span class="hljs-string">'user'</span></span><span>] = </span><span><span class="hljs-string">'John Doe'</span></span><span>;
</span><span><span class="hljs-title function_ invoke__">session_unset</span></span><span>(); </span><span><span class="hljs-comment">// 명확한 세션 데이터</span></span><span>
</span></span>
또는
<span><span><span class="hljs-title function_ invoke__">session_start</span></span><span>();
</span><span><span class="hljs-variable">$_SESSION</span></span><span>[</span><span><span class="hljs-string">'user'</span></span><span>] = </span><span><span class="hljs-string">'John Doe'</span></span><span>;
</span><span><span class="hljs-title function_ invoke__">session_destroy</span></span><span>(); </span><span><span class="hljs-comment">// 전체 세션을 파괴하십시오</span></span><span>
</span></span>
일부 특정 응용 프로그램 시나리오에서는 Session_Abort ()를 사용하여 특정 민감한 데이터가 저장되는 것을 방지하기 위해 세션을 일시적으로 중단 할 수 있습니다. 예를 들어, 사용자가 특정 작업을 취소하거나 오류가 발생하면 Session_Abort ()를 호출하여 세션 데이터를 서버에 저장할 수 없습니다.
<span><span><span class="hljs-title function_ invoke__">session_start</span></span><span>();
</span><span><span class="hljs-variable">$_SESSION</span></span><span>[</span><span><span class="hljs-string">'user'</span></span><span>] = </span><span><span class="hljs-string">'John Doe'</span></span><span>;
</span><span><span class="hljs-comment">// 작동 실패 또는 사용자가 취소되었습니다</span></span><span>
</span><span><span class="hljs-title function_ invoke__">session_abort</span></span><span>(); </span><span><span class="hljs-comment">// 세션을 중단합니다,데이터를 저장하지 않았습니다</span></span><span>
</span></span>
이 시나리오에서 Session_abort ()는 $ _session 배열에 수정 된 컨텐츠가 있더라도 저장되지 않으므로 불필요한 데이터 지속성을 피할 수 있습니다.
session_start ()는 세션을 시작하고 세션 데이터를 초기화하는 데 사용됩니다.
Session_abort ()는 현재 세션의 처리를 중단하고 구원받지 않은 세션 데이터를 폐기하는 데 사용됩니다.
이 두 기능은 함께 사용할 수 있지만, 동작이 독립적이기 때문에 일반적으로 동시에 사용할 필요는 없습니다.
세션 데이터를 정리하려면 session_unset () 또는 session_destroy ()가 더 직관적이고 효과적입니다.
특정 시나리오에서 Session_Abort ()를 사용하여 불필요한 데이터 지속성을 피하기 위해, 특히 사용자가 작업을 취소하거나 오류가 발생할 때.
일반적으로 Session_Start () 및 Session_Abort () 는 특별한 경우에는 함께 사용할 수있는 독립적 인 기능이지만 더 많은 경우 불필요한 믹싱을 피해야합니다. 합리적인 세션 관리에는 일반적으로보다 정확한 청소 및 파괴 작업이 필요합니다.