$_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 수준)라는 점에 주목할 가치가 있습니다. 알림을 무시하면 코드가 의도한 대로 실행될 수 있지만 특히 프로덕션 환경에서는 좋지 않은 습관으로 간주됩니다.
부인 성명: 제공된 모든 리소스는 부분적으로 인터넷에서 가져온 것입니다. 귀하의 저작권이나 기타 권리 및 이익이 침해된 경우 자세한 이유를 설명하고 저작권 또는 권리 및 이익에 대한 증거를 제공한 후 이메일([email protected])로 보내주십시오. 최대한 빨리 처리해 드리겠습니다.
Copyright© 2022 湘ICP备2022001581号-3