2014-11-28 2 views
0

나는 PHP 초보자이며 갤러리에 포함 된 코드에 대해 두 가지주의를 기울이고 있습니다. 알아낼 수 있습니까? 주의 사항알림 : 정의되지 않은 오프셋 : 3 줄에

공지 사항입니다 : 정의되지 않은 오프셋 : 3 /home/raj/public_html/viewgallery.php에서 줄에 408
주의 사항 : 오프셋 정의되지 않은 : 3 /home/raj/public_html/viewgallery.php에에 라인 (426)

라인 (408)은

'pcaption' => $caption_array[$next]); 

되고 라인 (426)은

입니다 당신이 찾을 요소가 마지막 요소에있을 때 17,451,515,
$result_final.= '<div class="limage"><table><tr><td><table class="image"><tr><td><a href="photos/'.$cname.'/'.$caption_array[$next].'/'.$q.'/"><img src="' . $images_dir . '/' . $photo_filename . '" alt=" ' . $photo_keywords . '"></a><div class="caption">' . $photo_caption . '</div><div class="excerpt">' . $photo_description . '</div></td></tr></table></td></tr></table><div class="underline"></div></div>'.$backString.'</div>'; 

위의 라인이 코드의 일부입니다 ...

기본적으로
$next = 0; 
$prev = 0; 
if ($ct > 1) 
{ 


$key = array_search($pcaption, $caption_array); 
$prev = $key - 1; 
if ($prev < 0) $prev = $ct - 1; 
$next = $key + 1; 
$searchNext = $key + 1; 


if ($next == $ct) $next = 0; 
$total_count = count($caption_array); 
$result_final.= "<div id='prevnext'>"; 
$parameters_next = array(
'cname' => $cname, 
'pcaption' => $caption_array[$next] 
); 
$parameters_prev = array(
'cname' => $cname, 
'pcaption' => $caption_array[$prev] 
); 


$categoryNamePrev = $cname; 
$photoCaptionNext = $caption_array[$next]; 
$photoCaptionPrev = $caption_array[$prev]; 



if($q !='' && $searchNext==$ct) { 

    $previousUrl = 'photos/'.$categoryNamePrev.'/'.$photoCaptionPrev.'/'.$q.'/'; 
    $nextUrl = '/searchmyway.php?q='.$q.'&form_id%3Asearch=1'; 
} else { 

    if($q != '') { 
     $previousUrl = 'photos/'.$categoryNamePrev.'/'.$photoCaptionPrev.'/'.$q.'/'; 
     $nextUrl = 'photos/'.$categoryNamePrev.'/'.$photoCaptionNext.'/'.$q.'/'; 
    } else { 
     $previousUrl = 'photos/'.$categoryNamePrev.'/'.$photoCaptionPrev.'/'; 
     $nextUrl = 'photos/'.$categoryNamePrev.'/'.$photoCaptionNext.'/'; 
    } 
} 


$result_final.= '<span class="prev"><a href="'.$previousUrl.'"><img src="/photos/assets/left.png" alt="left navigation"></a></span>'; 
$result_final.= '<span class="next"><a href="'.$nextUrl.'"><img src="/photos/assets/right.png" alt="right navigation"></a></span>'; 
$result_final.= "</div>"; 
} 
} 

$key = array_search($pcaption, $caption_array); 
$prev = $key - 1; 
if ($prev < 0) $prev = $ct - 1; 
$next = $key + 1; 
$searchNext = $key + 1; 
$parameters_next = array(
'cname' => $cname, 
'pcaption' => $caption_array[$next] 
); 
$parameters_prev = array(
'cname' => $cname, 
'pcaption' => $caption_array[$prev] 
); 

if($q != '') { 
     $backString = '<a href="/searchmyway.php?q='.$q.'&form_id%3Asearch=1">Back</a>'; 
} else { 
$backString = ''; 
} 


if($q == '') { 
$result_final.= '<div class="limage"><table><tr><td><table class="image"><tr><td><a href="photos/'.$cname.'/'.$caption_array[$next].'/"><img src="' . $images_dir . '/' . $photo_filename . '" alt=" ' . $photo_keywords . '"></a><div class="caption">' . $photo_caption . '</div><div class="excerpt">' . $photo_description . '</div></td></tr></table></td></tr></table><div class="underline"></div></div>'.$backString.'</div>'; 
} else { 
$result_final.= '<div class="limage"><table><tr><td><table class="image"><tr><td><a href="photos/'.$cname.'/'.$caption_array[$next].'/'.$q.'/"><img src="' . $images_dir . '/' . $photo_filename . '" alt=" ' . $photo_keywords . '"></a><div class="caption">' . $photo_caption . '</div><div class="excerpt">' . $photo_description . '</div></td></tr></table></td></tr></table><div class="underline"></div></div>'.$backString.'</div>'; 
} 
+0

'$ caption_array'에는 색인 3을 가진 요소가 없습니다. – Cheery

+0

감사합니다. Cheery,하지만 조금 더 설명 할 수 있습니까? 죄송합니다. 저는이 일에 아주 새롭습니다. – yathrakaaran

+1

'$ next' 변수가 3이고'$ caption_array [$ next]'에서 키/인덱스로 사용하고 있지만 배열'$ caption_array'는 index = 3 인 원소가 없습니다. 그래서 php 배열의 존재하지 않는 요소의 값을 얻으려고한다는 것을 알립니다. – Cheery

답변

1

, "다음"요소가 존재하고, 때를하지 않습니다 그것을 사용하려고하면, 그것은 당신에게 통지를 제공합니다.

적어도 그게 내가 당신의 코드에서 이해하는 것입니다.

어쩌면는 :

if($next<$total_count) 

도움이 될 것이다?

0

나를 도와 주신 여러분 께 감사드립니다. 변수 및 배열을 초기화하여이 문제를 해결했습니다. $caption_array[$next]=array(); 더 이상의주의 사항이 없습니다. 다시 한번 감사드립니다 ..

관련 문제