이 메시지는 오류 표시 모드를 설정하여 숨길 수 있지만 여기에도 숨겨진 위험이 있습니다. 즉, 이러한 메시지가 서버 로그에 기록되어 로그 파일이 비정상적으로 커지게 됩니다.
우선 이는 오류가 아니라 경고입니다. 따라서 서버를 변경할 수 없는 경우 각 변수를 정의한 후 사용해야 합니다. 인터넷에는 여러 가지 인기 있는 솔루션이 있습니다.
방법 1: 서버 구성을 수정합니다. php.ini 구성 파일 error_reporting = E_ALL & ~E_NOTICE를 수정합니다.
방법 2: 변수를 초기화하고 표준화된 방식으로 작성합니다(변수의 수가 많아 더 번거롭습니다). 하지만 아직 좋은 정의 방법을 찾지 못했는데, 조언 부탁드립니다.
방법 3: 각 파일의 헤더에 error_reporting(0)을 추가합니다. 그래도 작동하지 않으면 php.ini를 열고 display_errors를 찾아 display_errors = Off로 설정하세요. 향후 오류는 표시되지 않습니다.
방법 4: 판단: isset($_GET["page"]) if-else 판단. 또는 오류나 경고가 있는 경우 이 줄이 출력되지 않아야 함을 나타내려면 '@'을 추가하세요. 예: @$page=$_GET["page"]
방법 5: file1.php 파일은 $xx 변수에 값을 할당하고 file2.php에 post가 없으면 이를 file2.php에 전달합니다. $xx의 정의, $yy=$xx;를 직접 사용하는 경우 시스템은 "정의되지 않은 변수 $xx"라는 오류를 보고합니다. file2.php 파일이 $xx="";로 정의되기 시작하면 그러면 file1.php의 $xx 값을 전달할 수 없습니다. file2.php에서 할 수 있습니다: if(!isset($xx)) $xx="";
위 방법이 사용하기 쉽지 않다고 생각되면 다음 방법을 사용할 수도 있습니다.
코드 복사 코드는 다음과 같습니다.
function _get($str){
$val = !empty($_GET ['str']) ? $_GET['str'] : null;
return $val;
}
위 내용은 정의되지 않은 것이 무엇인지, 정의되지 않은 것이 무엇인지 포함하여 PHP 정의되지 않은 인덱스 오류를 수정하는 방법을 소개합니다. PHP 튜토리얼에 관심이 있는 친구들에게 도움이 되기를 바랍니다.