2011-01-20 2 views
0

치료를 위해 작동하는 PHP 페이지가 있으며 맨 위에 일부 JavaScript가 있습니다. 즉 HEAD 태그 사이에 있습니다. 내 PHP는 "header ("location :/");" 임의의 지점에서 다시 사용자를 index.php로 리디렉션하는 코드. 나는 자바 스크립트의 한 부분으로 헤더 정보 오류를 수정할 수 없다는 것을 좁혔다.JavaScript가 원인 인 헤더 정보를 수정할 수 없습니다. PHP의 오류

나는 HTML이 다른 것보다 먼저 출력되기 때문에 오류가 발생한다는 것을 알고 있습니다. 그러나 JavaScript를 읽거나 이해하는 방법을 모릅니다. 누군가 내가 내가 할 수 있거나 바꿔야하는 것에 나를 가리킬 수 있습니까?

<script type="text/javascript"> 
    $(document).ready(function(){ 
    //jCarousel Plugin 
    $('#carousel').jcarousel({ 
     vertical: true, 
     scroll: 1, 
     auto: 2, 
     wrap: 'last', 
     initCallback: mycarousel_initCallback 
    }); 
    //Front page Carousel - Initial Setup 
    $('div#slideshow-carousel a img').css({'opacity': '0.5'}); 
    $('div#slideshow-carousel a img:first').css({'opacity': '1.0'}); 
    $('div#slideshow-carousel li a:first').append('<span class="arrow"></span>') 
    //Combine jCarousel with Image Display 
    $('div#slideshow-carousel li a').hover(
     function(){ 
      if (!$(this).has('span').length){ 
       $('div#slideshow-carousel li a img').stop(true, true).css({'opacity': '0.5'}); 
       $(this).stop(true, true).children('img').css({'opacity': '1.0'}); 
      } 
     }, 
     function(){ 
      $('div#slideshow-carousel li a img').stop(true, true).css({'opacity': '0.5'}); 
      $('div#slideshow-carousel li a').each(function(){ 
       if ($(this).has('span').length) $(this).children('img').css({'opacity': '1.0'}); 
      }); 
     } 
    ).click(function(){ 
     $('span.arrow').remove();   
     $(this).append('<span class="arrow"></span>'); 
     $('div#slideshow-main li').removeClass('active');   
     $('div#slideshow-main li.' + $(this).attr('rel')).addClass('active'); 
     return false; 
    }); 
}); 
//Carousel Tweaking 
function mycarousel_initCallback(carousel){ 
    // Pause autoscrolling if the user moves with the cursor over the clip. 
    carousel.clip.hover(function(){ 
     carousel.stopAuto(); 
    }, function(){ 
     carousel.startAuto(); 
    }); 
} 
</script> 
+0

이 자바 스크립트 안에 PHP 코드가 없습니다. 이 코드는 PHP 파일 내에서 가지고있는 코드와 완전히 똑같습니까? 아니면 PHP 페이지의'view-source'를 수행 한 후 위의 코드를 복사 했습니까? –

답변

1

header('Location: /'); 사이에는 아무 것도 입력 할 수 없습니다. 출력 전에 보내야합니다. 당신이 나중에 사용자를 리디렉션 HTML 리디렉션을 사용하려면 http://php.net/manual/en/function.header.php

:

는 여기를 참조하십시오.

이 같은

일 :. <meta http-equiv="Refresh" content="5;url=http://www.abc.com" />

나는 당신의 질문을 이해한다면, 이것은 당신이에 넣어 한 jQuery 코드와 아무 상관이있다

+0

내 페이지 전체에 걸쳐 html 및 PHP가 포함되어 있습니다. 헤더 (위치 :/");는 헤더 함수를 포함하는 함수를 수행하거나 PHP를 닫을 때 html을 표시하는 if 문을 안에 넣습니다.> html을 표시 한 다음 medoix

+0

'' 태그 바깥에 나타나는 모든 * 문자 *가 브라우저로 보내집니다. 출력 후 PHP 리디렉션 코드를 사용하면 문제가 해결됩니다. 원하는 경우 자바 스크립트를 사용하여 리디렉션 할 수도 있습니다. 일부 사용자 입력시 리디렉션 – SuperSaiyan

+0

죄송합니다. 정말 간단합니다. 여기서는 정말 간단합니다.하지만 header.php에서 JavaScript를 제거하면 모든 것이 100 % 작동합니다. 매번 PHP가 오류를 리디렉션하려고 할 때마다 다시 넣습니다. ... – medoix

1

당신은 (헤더를 호출하기 전에 모든 HTML을 사용할 수 없습니다 " 머리글 위치 명령 등을 사용하려는 경우 위치는 ... 심지어 공간이 끊어집니다

, 당신의 PHP 태그는 파일의 첫 번째 문자해야

--------- 
<?php 
    //your header location code 
?> 
--------- 
,

파일과 PHP 태그를 나타내는 점선 사이의 모든 것이 헤더 위치를 어둡게합니다.

+0

내 페이지에는 HTML과 PHP가 끝까지 걸쳐 있습니다. 헤더 (위치 :/"); if 문은 헤더 함수를 포함하는 함수를 수행하거나 PHP를 닫을 때 html을 표시합니까?> html을 표시 한 다음 medoix

+0

정확하게 문제가 있습니다. 곧 모든 HTML을 출력 할 때 리디렉션을 중단하십시오. 0 행 파일 0은 시작 PHP 태그 여야하며, PHP 태그를 닫으면 다시 열 수 없습니다. 그렇지 않으면 리디렉션이 중단됩니다. –

1

다른 사람들과 마찬가지로 jquery 코드 자체는 아닙니다. header() 전화를 없애기 전에 <?php ?> 태그 외부의 콘텐츠가 있습니다. 이 문제를 해결하기 위해 코드를 재 작업 할 수없는 경우에는 output buffering을 참조하십시오. 그러면 콘텐츠를 출력하고 나중에 header() 통화를 발행 할 수 있습니다.

관련 문제