여분빌드 분할입력 문제
본문
write 페이지에서
여분필드를 분할해서 데이터를 입력하려고 하는데,
아래와 같이 경고 메시지가 나오네요.
<?php
$wr_5x = explode('|',substr($write['wr_5'],1));
$wr_6x = explode('|',substr($write['wr_6'],1));
$wr_7x = explode('|',substr($write['wr_7'],1));
$wr_8x = explode('|',substr($write['wr_8'],1));
?>
Warning: Undefined array key "wr_5" in E:\w23\g55834\skin\board\basic_media\write.skin.php on line 217
Warning: Undefined array key "wr_6" in E:\w23\g55834\skin\board\basic_media\write.skin.php on line 218
Warning: Undefined array key "wr_7" in E:\w23\g55834\skin\board\basic_media\write.skin.php on line 219
Warning: Undefined array key "wr_8" in E:\w23\g55834\skin\board\basic_media\write.skin.php on line 220
참고로,
사용환경은 laragon 6.0에,
Apache httpd-2.4.57,
php-8.2.10-win32-vs16-x64,
mysql-8.1.0-winx64
입니다.
!-->
답변 5
isset($write['wr_5'])
경고 메시지는 "wr_5", "wr_6", "wr_7", "wr_8"과 같은 배열 키에 해당하는 값을 찾지 못한 것으로 보이네요~
배열을 필드를 '|' 문자로 분할하여 배열 만들기 전에 다음과 같이 추가해보세요
$wr_5 = $write['wr_5']; $wr_6 = $write['wr_6']; $wr_7 = $write['wr_7']; $wr_8 = $write['wr_8'];
에러문구를 잘 보시면 답이 있습니다.
Warning: Undefined array key "wr_5" in E:\w23\g55834\skin\board\basic_media\write.skin.php on line 217
wr_5 필드에 배열키가 정의되어 있지 않다는것입니다. 조금 더 쉽게 풀이해 보자면.. $wirte에 배열이 정상적으로 셋팅이 안되어있다는 것입니다.
먼저 print_r2($write)를 해서 한번 출력해보시면 값이 안나올겁니다. 그럼 상위로 올라가서 $write 에 배열을 할당 하는곳을 살펴보시면 쉽게 해결이 되실겁니다.
근본적인 원인부터 하나씩 찾아보시면 해결이 되실겁니다.
<?php
$wr_5x = isset($write['wr_5']) == true ? explode('|',substr($write['wr_5'],1)) : null;
$wr_6x = isset($write['wr_6']) == true ? explode('|',substr($write['wr_6'],1)) : null;
$wr_7x = isset($write['wr_7']) == true ? explode('|',substr($write['wr_7'],1)) : null;
$wr_8x = isset($write['wr_8']) == true ? explode('|',substr($write['wr_8'],1)) : null;
?>
질문 코드 위쪽에 다음처럼 넣으세요
if(!$w) $write['wr_5'] =$write['wr_6']=$write['wr_7'] =$write['wr_8'] ='';
$wr_5x=$wr_6x=$wr_7x=$wr_8x=array();