채택완료

Undefined array key 에러문구 도움 부탁드립니다

https://sir.kr/boards/g5_skin/63605
게시물의 질문 입니다


youtube.php 파일은 
/public_html/theme/Marigold/youtube.php 
에 올리고

<?php include_once(G5_THEME_PATH.'/youtube.php'); ?>
코드는

/public_html/theme/Marigold/page/test.php 
페이지에 적용했습니다

영상은 잘 나옵니다
영상위에 아래와 같은 에러문구가 4줄정도 뜹니다

Warning: Undefined array key 1 in /home1/wownoori/public_html/theme/Marigold/youtube.php on line 16




그리고...
혹시 랜덤재생으로 수정 가능할까요?
 
|

답변 4개 / 댓글 6개

채택된 답변
+20 포인트
16번라인에 if (isset($match[1])) 이렇게 처리해주세요
그리고
// while 문 끝난 뒤에 약21번라인에 다음과 같이 추가해주세요
if (!empty($yt_ids)) {
    $combined = array_map(null, $yt_ids, $yt_titles);
    shuffle($combined);
    $yt_ids = array_column($combined, 0);
    $yt_titles = array_column($combined, 1);
}
 

답변에 대한 댓글 3개

if(isset($match[1])){
$yt_ids[] = $match[1];
$yt_titles[] = addslashes($row['wr_subject']); // 자바스크립트 오류 방지를 위해 따옴표 처리

// while 문 끝난 뒤에 약21번라인에 다음과 같이 추가해주세요
if (!empty($yt_ids)) {
$combined = array_map(null, $yt_ids, $yt_titles);
shuffle($combined);
$yt_ids = array_column($combined, 0);
$yt_titles = array_column($combined, 1);
}
}
}

에러 .경고 문구는 깔금하게 사라졌는데 ...랜덤은 안되는듯 합니다.
소중한 답변 감사합니다
if (!empty($yt_ids)) {
$combined = [];
foreach ($yt_ids as $i => $id) { $combined[] = ['id' => $id, 'title' => $yt_titles[$i]]; }
shuffle($combined);
$yt_ids = array_column($combined, 'id');
$yt_titles = array_column($combined, 'title');
}
만약 이게 새로고침마다 랜덤이 안된다면 js nextVideo() 함수처리쪽에서 Math.random()로 처리해 주셔야합니다. 선생님
에러 문구라기 보다는 경고 메시지입니다.
증상은 그렇습니다. 배열관련된 함수( explode나 array 같은..) 이런 함수를 사용하셨을 때 배열에 값이 없을때 나오는
경고 메시지입니다.
그래서, 정확한 진단을 하시려면 오류코드를 보여주시면 빠르게 해결이 가능할거 같습니다.

저런 오류를 무시하고 싶으시면 상단에 아래와 같은 코드를 붙여주시면 됩니다.

Copy
ini_set('display_errors', '0');
또는

Copy
error_reporting(0);


제가 말씀드리는 방법은 증상을 안보이게끔 하는 것이지 경고 메시지를 근본적으로 해결한것은 아닙니다.
코드를 보여주시면 랜덤하게 나오는 방법과 오류 대응 방법을 알려드리겠습니다.

답변에 대한 댓글 1개

많이 어렵지만 소중한 답변 감사합니다
아마 php 최신버전이라서 배열을 정의 안하신거 같네요. 해당 열에 있는 배열을 미리 정의해보세요.

답변에 대한 댓글 1개

이해는 되는데 어렵네요 소중한 답변 감사합니다
에러 라인 코드를 적고 질문해 보세요.

답변에 대한 댓글 1개

소중한 답변 감사합니다

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

🐛 버그신고