여분빌드 분할입력 문제

매출이 오르면 내리는 수수료! 지금 수수료센터에서 전자결제(PG)수수료 비교견적 신청해 보세요!
여분빌드 분할입력 문제

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();

답변을 작성하시기 전에 로그인 해주세요.
전체 21
QA 내용 검색

회원로그인

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