"일꾼이 일을 잘하려면 먼저 도구를 갈고 닦아야 한다." - 공자, 『논어』.
첫 장 > 프로그램 작성 > $_POST에서 PHP \"정의되지 않은 인덱스\" 오류를 방지하는 방법은 무엇입니까?

$_POST에서 PHP \"정의되지 않은 인덱스\" 오류를 방지하는 방법은 무엇입니까?

2024-11-01에 게시됨
검색:225

How to Avoid PHP \

$_POST가 포함된 PHP 정의되지 않은 인덱스 [중복]

PHP에서 설정되지 않은 배열 요소에 액세스하면 런타임 오류가 발생하여 " 정의되지 않은 인덱스' 알림. 이는 사용자 로그인 스크립트와 같은 양식에서 빈 변수를 테스트할 때 자주 발생합니다.

간소화된 코드에서 문제를 보여줍니다.

$user = $_POST["username"];
if($user != null)
{
    echo $user;
    echo " is your username";
}
else
{
    echo "no username supplied";
}

사용자 이름이 있으면 코드가 예상대로 작동하지만 아무것도 제공되지 않으면 "정의되지 않은 색인: 사용자 이름" 오류와 함께 실패합니다. 이는 데이터가 제출되지 않은 경우 $_POST에 "username" 키가 없기 때문에 발생합니다.

이 문제를 해결하려면 isset() 연산자를 사용하여 변수 또는 배열 요소에 액세스하기 전에 존재 여부를 확인하세요. 이렇게 하면 값을 검색하기 전에 오류가 방지됩니다.

if (isset($_POST["username"]))
{
    $user = $_POST["username"];
    echo "$user is your username";
}
else
{
    $user = null;
    echo "no username supplied";
}

이 업데이트된 코드에서 isset()은 해당 값을 $user에 할당하기 전에 "username" 키가 $_POST에 있는지 확인합니다. 이렇게 하면 런타임 오류가 제거되고 사용자 이름이 비어 있는 경우를 올바르게 처리할 수 있습니다.

배열 요소 누락은 사소한 런타임 오류(E_NOTICE 수준)라는 점에 주목할 가치가 있습니다. 알림을 무시하면 코드가 의도한 대로 실행될 수 있지만 특히 프로덕션 환경에서는 좋지 않은 습관으로 간주됩니다.

릴리스 선언문 이 기사는 1729211175에 재현됩니다.
최신 튜토리얼 더>

부인 성명: 제공된 모든 리소스는 부분적으로 인터넷에서 가져온 것입니다. 귀하의 저작권이나 기타 권리 및 이익이 침해된 경우 자세한 이유를 설명하고 저작권 또는 권리 및 이익에 대한 증거를 제공한 후 이메일([email protected])로 보내주십시오. 최대한 빨리 처리해 드리겠습니다.

Copyright© 2022 湘ICP备2022001581号-3