상세 컨텐츠

본문 제목

PHP 에서 Undefined index: 오류발생시 해결방법 /PHP오류메시지 해결

IT공부방

by 동해둘리 2019. 4. 17. 16:15

본문

반응형

 

 

PHP에서 별 문제없이 사용하던 코드인데 Undefined index: 라는 오류메시지가 발생하는 경우가 있습니다. 이는 php.ini 의 설정과 관련이 있는 사항인데요.....

 

미리 선언하지 않은 변수를 사용하는 경우에 아래와 같은 오류가 발생하게 됩니다

 

Notice: Undefined index: id in C:\inetpub\wwwroot\index.php on line 31

 

 

예를들어 아래와 같이 코딩을 했을경우 

$sum = $data + 1;

 

$data 를 미리 선언하지 않았기 때문에 data 가 undefined variable 이라고 오류를 출력하게 되는 겁니다.

 

Notice: Undefined variable: data in C:\inetpub\wwwroot\teacher21\index.php on line 29

 

 

 

아래와 같이 REQUEST / SESSION 등을 사용하는 경우에 발생 할 수도  있습니다

 

$session_id = $_REQUEST["id"];

$session_id = $_SESSION["id"];

 

위의 경우에는 아래와 같은 오류메시지가 출력됩니다

 

Notice: Undefined index: id in C:\inetpub\wwwroot\index.php on line 32 

 

 

아주 엄격하게 코딩을 하려면 모든 변수를 선언한 후에 사용하면 되지만, REQUEST 같은 경우는 URL로 전달되기 때문에 미리 선언하기도 쉽지 않습니다.

 

이럴경우, php.ini 파일을 수정하면 쉽게 해결이 가능합니다.

 

php.ini 파일을 열고 error_reporting 부분을 찾아보면 아래와 같이 되어있는 경우가 많습니다.

 

error_reporting = E_ALL & ~E_DEPRECATED & ~E_STRICT

 

E_ALL은 모든 에러에 대하여 출력한다는 뜻입니다

E_DEPRECATED 는 특정기능/함수가 앞으로는 지원되지 않을 수 있는 경우 표시됩니다.

해당 문자열 앞에 ~가 붙으면 해당 오류는 출력하지 않는다는 뜻입니다

 

그래서 아래와 같이 & ~E_NOTICE  를 추가해 주면 앞어살펴본 변수선언 관련 에러가 표시되지 않습니다.

 

error_reporting = E_ALL & ~E_DEPRECATED & ~E_STRICT & ~E_NOTICE

 

php.ini 를 수정한 후에는 웹서버를 재시작 해주시면 적용됩니다

 

 

 

반응형

댓글 영역