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 를 수정한 후에는 웹서버를 재시작 해주시면 적용됩니다
댓글 영역