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

Warning: Uninitialized string offset 0 에러문의 채택완료

Oneuls 1년 전 조회 14,601

안녕하세요.

서버이전을 하게되면서 php8로 업그레드를 하게되었습니다.

그러면서 홈페이지 오류가 많이 나타나서 수정작업중입니다. 

오류수정 작업 중 제목처럼 관리자 페이지(배너관리)에서 아래처럼 오류가 납니다.

Warning: Uninitialized string offset

에러출력되는 곳

<p><INPUT TYPE="RADIO" name="bn_position" id="bn_position_<?php echo $i; ?>" value="<?php echo $banner_info[0]; ?>"<?php  IF ( $bn['bn_position'] == $banner_info[0] )  { echo " checked"; }  ?>> <?php echo $banner_info[0]; ?> : <span style="color:#5b747e;"><?php echo $banner_info[1]; ?></span></p>

 

어떤거 때문에 에러(Warning: Uninitialized string offset)가 나는지 알수있을까요?

가능하면 수정방법도 알고싶습니다.

감사합니다!~

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

답변 4개

채택된 답변
+20 포인트
1년 전

</p>

<p>$banner_info = $banner_info ?? ['', ''];</p>

<p> </p>

<p><p> <INPUT TYPE="RADIO" name="bn_position" id="bn_position_<?php echo $i; ?>" value="<?php echo isset($banner_info[0]) ? htmlspecialchars($banner_info[0]) : ''; ?>" <?php if (isset($bn['bn_position']) && isset($banner_info[0]) && $bn['bn_position'] == $banner_info[0]) { echo " checked"; } ?>> <?php echo isset($banner_info[0]) ? htmlspecialchars($banner_info[0]) : ''; ?> : <span style="color:#5b747e;"><?php echo isset($banner_info[1]) ? htmlspecialchars($banner_info[1]) : ''; ?></span> </p></p>

<p>

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

답변에 대한 댓글 1개

O
Oneuls
1년 전
감사합니다! 덕분에 해결되었습니다~

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

1년 전

위 코드 위쪽 php부분에 넣으세요

if(!isset($bn['bn_position'])) $bn['bn_position']='';

 

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

답변에 대한 댓글 1개

O
Oneuls
1년 전
답변주셔서 감사합니다!!

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

1년 전

</p>

<p><?php</p>

<p>if (is_array($bn) == false) {

    $bn = [];

}</p>

<p>if (isset($bn['bn_position'] == false) {</p>

<p>    $bn['bn_position'] = '';</p>

<p>}

if (is_array($banner_info) == false) {

    $banner_info = [];

}

if (isset($banner_info[0]) == false) {

    $banner_info[0] = '';

}

if (isset($banner_info[1]) == false) {

    $banner_info[1] = '';

}

?></p>

<p><p><INPUT TYPE="RADIO" name="bn_position" id="bn_position_<?php echo $i; ?>" value="<?php echo $banner_info[0]; ?>"<?php  IF ( empty($bn['bn_position']) == false && $bn['bn_position'] == $banner_info[0] )  { echo " checked"; }  ?>> <?php echo $banner_info[0]; ?> : <span style="color:#5b747e;"><?php echo $banner_info[1]; ?></span></p></p>

<p>

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

답변에 대한 댓글 1개

O
Oneuls
1년 전
답변주셔서 감사합니다!!

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

wodud3073
1년 전

banner_info 배열이 값이 없는것 같습니다. print_r로 한번 조회해보세요.

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

답변에 대한 댓글 1개

O
Oneuls
1년 전
답변주셔서 감사합니다!!

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

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

로그인