Warning: Uninitialized string offset 0 에러문의
본문
안녕하세요.
서버이전을 하게되면서 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
$banner_info = $banner_info ?? ['', ''];
<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>
위 코드 위쪽 php부분에 넣으세요
if(!isset($bn['bn_position'])) $bn['bn_position']='';
banner_info 배열이 값이 없는것 같습니다. print_r로 한번 조회해보세요.
<?php
if (is_array($bn) == false) {
$bn = [];
}
if (isset($bn['bn_position'] == false) {
$bn['bn_position'] = '';
}
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><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>
답변을 작성하시기 전에 로그인 해주세요.