2011-01-20 6 views
0

PHPのページには扱いがあり、先頭にいくつかのJavaScriptがあります。つまり、HEADタグの間にJavaScriptがあります。私のPHPは "header(" location:/ ");"ランダムなポイントでユーザーをindex.phpにリダイレクトするコード。私は私の頭の情報のエラーをjavascriptのこの1つの部分に変更することはできません絞り込んだ、私はそれがうまく動作する場合、私はそれが失敗に戻す置く。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

このjavascriptの中にPHPコードはありません。これはあなたのPHPファイルの中にあるコードとまったく同じですか?あるいは、PHPページの 'view-source'を実行した後に上記をコピーしましたか? –

答えて

1

header('Location: /');を間に入れることはできません。出力前に送信する必要があります。

ここでそれを読む:あなたはその後、ユーザーをリダイレクトしたい場合はhttp://php.net/manual/en/function.header.php

を、HTMLリダイレクトを使用しています。あなたは、ヘッダーを呼び出す前に、任意のHTMLを持つことができません<meta http-equiv="Refresh" content="5;url=http://www.abc.com" />

私はあなたの質問を理解している場合、これはあなたがに入れているjQueryのコードとは何の関係もありません

+0

私のページにはhtmlとphpがあります。ヘッダ(location:/ ");は、 ifステートメントの中にあります。ifステートメントは、ヘッダ関数を含む関数を実行するか、またはPHPを閉じるときにhtmlを表示しますか?> htmlを表示し、<?phpを開いて末尾} – medoix

+0

''タグの外側に表示されるすべての*文字*がブラウザに送信され、出力後にそのPHPリダイレクトコードがあると、単純に内容が破られます。 – SuperSaiyan

+0

申し訳ありませんが、ここでは本当にシンプルなことが分かりませんが、header.phpからそのJavaScriptを削除すると、すべてが100%動作します。毎回PHPがそれをリダイレクトしようとするとエラーが発生します... – medoix

1

(」:

このような何かを。場所...

でもスペースがあなたが

--------- 
<?php 
    //your header location code 
?> 
--------- 
ヘッダの場所コマンドなどを使用したい場合は、あなたのPHPタグは、ファイルの最初の文字である必要があり、それを破るだろう

あなたのファイルを表す点線とPHPタグの間にあるものはすべて、ヘッダの位置を壊します。

+0

マイページにはHTMLとPHPが一貫しています。 ifステートメントは、ヘッダー関数を含む関数を実行するか、またはPHPを閉じるときにhtmlを表示するか?htmlを表示してから<?phpを開いて末尾を追加します} – medoix

+0

これはまさに問題です。間もなくあなたはどんなHTMLを出力しても、あなたのリダイレクトは中断します。 0行あなたのファイル内の文字0は開始PHPタグでなければなりません。そのPHPタグを閉じると、それ以降はそれを開くことができません。そうしないと、リダイレクトが解除されます。 –

1

他の人が言ったように、それはjqueryコードそのものではありません。あなたが取り除く必要があるheader()コールの前に、<?php ?>タグの外のコンテンツがあります。これを修正するためにコードを修正できない場合は、見てくださいoutput buffering。これにより、コンテンツを出力してから、その後にheader()コールを発行することができます。

関連する問題