여분빌드 분할입력 문제

여분빌드 분할입력 문제

QA

여분빌드 분할입력 문제

본문

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'])

감사합니다.
알려주신 걸 갖고 아래와 같이 수정했습니다.

<?php
if (isset($write['wr_5'])) { $wr_5x = explode("|",substr($write['wr_5'],1)); }
if (isset($write['wr_6'])) { $wr_6x = explode("|",substr($write['wr_6'],1)); }
if (isset($write['wr_7'])) { $wr_7x = explode("|",substr($write['wr_7'],1)); }
if (isset($write['wr_8'])) { $wr_8x = explode("|",substr($write['wr_8'],1)); }

if ($wr_5x && count($wr_5x)>0) { // 이 곳과
$wr_5_cnt = count($wr_5x);
}
if (!$wr_5_cnt) { //이 곳에서
$wr_5_cnt = 1;
}
for ($i = 0;  $i < $wr_5_cnt; $i++) {
?>

그런데, 이번에는
Warning: Undefined variable $wr_5x in ....
이라는 경고가 뜹니다.
해결책을 좀 알려주세요.
감사합니다.


<?php 
        $wr_5x = explode('|',substr(isset($write['wr_5']),1));
        $wr_6x = explode('|',substr(isset($write['wr_6']),1));
        $wr_7x = explode('|',substr(isset($write['wr_7']),1));
        $wr_8x = explode('|',substr(isset($write['wr_8']),1));
?>

이렇게 해 보세요.

경고 메시지는 "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();

답변을 작성하시기 전에 로그인 해주세요.
전체 1

회원로그인

(주)에스아이알소프트 / 대표:홍석명 / (06211) 서울특별시 강남구 역삼동 707-34 한신인터밸리24 서관 1404호 / E-Mail: admin@sir.kr
사업자등록번호: 217-81-36347 / 통신판매업신고번호:2014-서울강남-02098호 / 개인정보보호책임자:김민섭(minsup@sir.kr)
© SIRSOFT