문제

오래된 PHP 스크립트를 정리하는 동안 변수를 사용하려고 할 때 요구 사항/포함 된 명령으로 이상한 동작을 발견했습니다.

라이브 서버에서 다음 코드는 제대로 작동합니다.

<?php
$test = "http://localhost/elearning/trunk/mypage.php";
require "$test";
?>

.. 그러나 XAMPP 설치 ((기본 패키지) 버전 1.6.7)에서 다음 오류를받습니다.

경고 : require () [function.require] : URL 파일 액세스는 서버 구성에서 C : 문서 및 설정 username username xampp-win32-1.6.7 xampp htdocs elearning trunk test의 비활성화되었습니다. 22 행에 .php

경고 : 요구 사항 (http : //localhost/elearning/trunk/mypage.php) [function.require] : 스트림을 열지 못했습니다 : C : 문서 및 설정 username goodtop xampp-win32-1.6.7 xampp htdocs elearning trunk test.php on. 22 행

치명적인 오류 : require () [function.require] : 오픈 실패 필수http : //localhost/elearning/trunk/mypage.php'(include_path ='. 1.6.7 xampp htdocs elearning trunk test.php 라인 22

복사하면+붙여 넣기 http : //localhost/elearning/trunk/mypage.php (오류에서 직접) 내 브라우저, myPage.php로드로. 내 구성 또는 접근 방식의 오류입니까?

도움이 되었습니까?

해결책

보안 때문에 일부 서버에서 http : //로 시작하는 경로를 사용할 수 없습니다. 대신 사용하려는 것은 디렉토리 경로입니다.

다음과 같은 작업을 수행하여 현재 디렉토리 경로를 얻을 수 있습니다.
echo $_SERVER['DOCUMENT_ROOT'];

서버의 루트 폴더에서 디렉토리 경로를 제공합니다. 그것이 당신이 물건을 포함시키기 위해 사용하려는 경로입니다.


당신이 그것을 잘 이해하지 못했다면, 이것을 시도하십시오.

경로에는 두 가지 유형이 있습니다.

월드 와이드 웹 경로 :
http://example.com/directory/file.php

서버 디렉토리 경로 :
/home/usr/www/site/html/

서버 디렉토리 경로는 파일이 서버 하드 드라이브에있는 위치입니다. 컴퓨터의 하드 드라이브와 마찬가지로 파일을 이동하지 않으면 절대 변경되지 않습니다. 반면, 월드 와이드 웹 경로 (모든 사람이 웹 사이트에 액세스하는 데 사용하는)는 사용중인 도메인, 문서 루트가 가리키는 위치, 모드 재 작성 등을 기준으로 변경 될 수 있습니다.

참고 : 문서 루트는 서버가 파일을 제공하는 가장 큰 디렉토리입니다. 따라서 문서 루트에 index.php가 있으면 웹에서 다음과 같이 표시됩니다.http://example.com/index.php.

PHP가 파일을 찾으면 서버에서 실행되기 때문에 서버 디렉토리 경로를 사용합니다. 사용자 컴퓨터에서 실행되는 JavaScript가 파일을 찾으려면 World Wide 웹 경로를 사용하여 서버에서 액세스하지 않기 때문에 액세스 할 수 있습니다.

나는 거기 어딘가에 무언가가 말이되기를 정말로 바랍니다.

다른 팁

"./mypage.php"요구 사항을 시도해보십시오. 전체 정확한 디렉토리가 아닙니다.

PHP는 URL 표기법을 사용할 때 동일한 서버에서 포함한다는 것을 알기에 충분히 현명하지 않으므로 SEPERATE 서버에서 파일을 잡는 것으로 생각합니다 (위험 할 수 있음).

서버 구성이 이러한 외부 파일로드를 허용하지 않도록 설정되어 있습니다 ( "URL 파일 액세스는 서버 구성에서 URL 파일 액세스가 비활성화되어 있음")에 실패합니다.

동일한 서버에 있으므로 다음과 같은 상대 경로를 사용할 수 있습니다.

require_once 'mypage.php'

그런 경로를 사용하지 마십시오 ... 상대 경로 나 절대 경로를 사용하십시오.

예시

require 'mypage.php'
라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top