> 백엔드 개발 > PHP 튜토리얼 > Windows 2003 서버 PHP에서 $_SERVER[PHP_SELF]와 $_SERVER[SCRIPT_NAME]의 차이점

Windows 2003 서버 PHP에서 $_SERVER[PHP_SELF]와 $_SERVER[SCRIPT_NAME]의 차이점

WBOY
풀어 주다: 2016-07-29 08:40:39
원래의
830명이 탐색했습니다.

"PHP_SELF"
문서 루트와 관련된 현재 실행 중인 스크립트의 파일 이름입니다. 예를 들어, URL 주소가 http://www.jb51.net/test.php/foo.bar인 스크립트에서 $_SERVER['PHP_SELF']를 사용하면 /test.php/foo.bar가 됩니다. __FILE__ 상수에는 현재(즉, 포함하는) 파일의 절대 경로와 파일 이름이 포함됩니다.
"SCRIPT_NAME"
현재 스크립트의 경로가 포함되어 있습니다. 이는 페이지가 자신을 가리켜야 할 때 유용합니다. __FILE__에는 현재 파일(예: 포함 파일)의 절대 경로와 파일 이름이 포함됩니다.
주요 이유는 다음과 같습니다: $_SERVER['PHP_SELF'] ? $_SERVER['PHP_SELF'] : $_SERVER['SCRIPT_NAME']
다음과 같은 더 나은 이유를 찾으세요.
오늘 Dreamhost에서 PHP 프로그램을 사용하면 연결된 주소에 별도의 cgi 시스템이 있을 것이라는 것을 알았으나 프로그램 구성에는 문제가 없었습니다. 정보를 확인한 결과 SCRIPT_NAME과 PHP_SELF의 차이로 인해 문제가 발생한 것으로 나타났습니다.
대부분의 PHP는 CGI 모드에서 실행되지 않기 때문에 일반적으로 이 시스템에서 $_SERVER['SCRIPT_NAME'] 및 $_SERVER['PHP_SELF']를 테스트하면 아무런 차이가 없을 것입니다.
그러나 DreamHost의 PHP는 CGI 모드에서 실행되므로 둘 사이에는 분명한 차이점이 있습니다.
echo $_SERVER['SCRIPT_NAME']; // (/cgi-system/php.cgi)
echo $_SERVER['PHP_SELF'] // (/admin/test.php)
에서 http://lists.nyphp.org/pipermail/talk/2005-July/015339.html에서 메모를 발견했습니다. 외국인이 말했다.
SCRIPT_NAME은 이 스레드에서 언급된 모든 문제를
해결합니다. 사용자가 추가로 추가할 수 있는 것은 스크립트 이름뿐이며
PHP_SELF에는 추가 가비지가 포함되므로
해결책이 있습니다. 안전을 위해
PHP_SELF에서 쓰레기를 제거하는 것과 관련된 이 스레드에서는 실제로
포인트가 누락되었습니다. 대신에 FORM ACTION=""을 사용하지 마세요. 사양, 브라우저가 무엇을 하는지는 정의되어 있지 않으므로
현재 브라우저에서는 작동하더라도 향후 브라우저에서는 작동하지 않을 수 있습니다.
위 내용은 Windows 2003 Server의 내용을 포함하여 Windows 2003 Server PHP의 $_SERVER[PHP_SELF]와 $_SERVER[SCRIPT_NAME]의 차이점을 소개하고 있으며 PHP 튜토리얼에 관심이 있는 친구들에게 도움이 되기를 바랍니다.

관련 라벨:
원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿