테스트 사이트 - 개발 중인 베타 버전입니다

여분빌드 분할입력 문제 채택완료

그누구나 2년 전 조회 5,205

write 페이지에서 

여분필드를 분할해서 데이터를 입력하려고 하는데, 

아래와 같이 경고 메시지가 나오네요.

</p>

<p><?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));

?></p>

<p>

 

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개

채택된 답변
+20 포인트
들레아빠

isset($write['wr_5'])

로그인 후 평가할 수 있습니다

답변에 대한 댓글 3개

그누구나
2년 전
감사합니다.
알려주신 걸 갖고 아래와 같이 수정했습니다.

<?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 ....
이라는 경고가 뜹니다.
해결책을 좀 알려주세요.
감사합니다.
들레아빠
2년 전
[code]
<?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));
?>
[/code]
이렇게 해 보세요.
들레아빠
2년 전
채택 감사 합니다.

댓글을 작성하려면 로그인이 필요합니다.

2년 전

질문 코드 위쪽에 다음처럼 넣으세요

if(!$w) $write['wr_5'] =$write['wr_6']=$write['wr_7'] =$write['wr_8'] ='';

$wr_5x=$wr_6x=$wr_7x=$wr_8x=array();

로그인 후 평가할 수 있습니다

답변에 대한 댓글 1개

그누구나
2년 전
감사합니다.

댓글을 작성하려면 로그인이 필요합니다.

2년 전

</p>

<p><?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;

?></p>

<p>

로그인 후 평가할 수 있습니다

답변에 대한 댓글 1개

그누구나
2년 전
감사합니다.

댓글을 작성하려면 로그인이 필요합니다.

복스리
2년 전

에러문구를 잘 보시면 답이 있습니다.

 

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 에 배열을 할당 하는곳을 살펴보시면 쉽게 해결이 되실겁니다.

 

근본적인 원인부터 하나씩 찾아보시면 해결이 되실겁니다.

로그인 후 평가할 수 있습니다

답변에 대한 댓글 1개

그누구나
2년 전
감사합니다.

댓글을 작성하려면 로그인이 필요합니다.

웅푸
2년 전

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

 

로그인 후 평가할 수 있습니다

답변에 대한 댓글 1개

그누구나
2년 전
감사합니다.

댓글을 작성하려면 로그인이 필요합니다.

답변을 작성하려면 로그인이 필요합니다.

로그인