update : 2015.11.03
php.shukuma.com검색:
|
register_globals가 꺼져있으면, 전역 연관 배열 $_SESSION의 멤버만 세션 변수로 등록됩니다. 복구된 세션 변수는 $_SESSION 배열 안에만 존재합니다. $_SESSION(또는 PHP 4.0.6 이하에서 $HTTP_SESSION_VARS)의 사용은 보안 향상과 코드 가독성을 위하여 추천됩니다. $_SESSION으로, session_register(), session_unregister(), session_is_registered() 함수를 사용할 필요가 없습니다. 세션 변수를 다른 변수처럼 접근할 수 있습니다. Example #1 $_SESSION으로 변수 등록하기.
<?php Example #2 $_SESSION으로 변수 제거하기와 register_globals 비활성화.
<?php
Warning
세션 변수에 참조를 사용할 수 없습니다. 다른 변수에 대한 참조를 복구할 방법이 없기 때문입니다. register_globals가 활성화되어 있으면, 각 전역 변수를 세션 변수로 등록할 수 있습니다. 세션을 재시작할 때, 이 변수들이 해당 전역 변수로 복구됩니다. PHP가 어떤 전역 변수가 세션 변수로 등록되어야 하는지 알아야 하기 때문에, 사용자가 session_register() 함수로 변수를 등록해야 합니다. 단순히 $_SESSION에 엔트리를 설정할 수도 있습니다. Caution
PHP 4.3.0 이전에, $_SESSION을 사용하고 register_globals를 비활성화 했다면, session_register(), session_is_registered(), session_unregister()를 사용하지 마십시오. 보안과 성능 관계로 register_globals를 끄기를 권합니다. register_globals가 켜져있으면, 전역 변수와 $_SESSION 엔트리는 자동적으로 이전 세션 인스턴스에서 등록한 같은 값을 참조합니다. 그러나, $_SESSION에 변수를 등록하면, 전역 변수는 다음 요청부터 사용할 수 있습니다. PHP 4.2.3까지 결함이 있습니다. 새 세션 변수를 session_register()를 사용하여 등록하면, 전역 영역과 $_SESSION 엔트리가 다음 session_start()까지 동일한 값을 참조하지 않습니다. 즉, 새로 등록한 전역 변수를 변경해도 $_SESSION 엔트리에 반영되지 않습니다. PHP 4.3.0에서 고쳐졌습니다. |