2011-07-25 9 views
0

私はMAMP、NetBeansを使って自分のMacにPHP Webサイトを開発しています。私は次のコードを書いたが、繰り返しエラーが発生した。私はすべてのコメント行を試したが、どちらもうまくいきません。ヘッダーが機能していませんPHP

<?php 
if ($output == 1) //Authenticated = yes 
{ 

    $url = "http://www.google.com”; 
    //error_reporting(E_ALL); ini_set('display_errors', 'On'); 
    // 
    // include('./dlheader.inc'); 

    //header("Content - Length: 0"); 
    // header("Location: http://google.com", true, 303); 
    // header("Location:".$url); 
    // header("Location: http://google.com", true); 
    // exit; 

    /*   flush(); 
      if (headers_sent()) { 
die('cannot send location header (anymore)'); 
} 
    else { 
    header('Location: '.$url); 
    die(); 
} 

*/ 
    //echo '<html><head><meta http-equiv="refresh" content="1;url=' . $url . '"/>; 

} 
?> 

このコードは、<body>タグの直後です。あなたの助けを前もってありがとう。

+3

あなたが得るエラーはどのようなものです:あなたは、関数headers_sent()からブールの結果でこれを確認することができます

? – Jim

+1

あなたのエラーは? –

+1

よくある質問です。良い回答を保証するには、期待した結果(「google.comをロードします」)と実際の結果(「次のエラーメッセージが表示されます:blah blah blah」)を含める必要があります – Erik

答えて

11

これがあなたのコードと正確に同じ場合は、この中括弧を修正する必要があります。ウェブサイトやワープロからコピー/ペーストされたようです。

$url = "http://www.google.com”; 
          ^^^^ 

は、それが適切な二重引用符ではないので、PHPは別の"があるまで閉鎖されるなどの文字列とそれ以降のすべてのコードは、文字列の一部として扱われている見ていない

$url = "http://www.google.com"; 

であるべき遭遇した。

5

phpタグの前のスペースがファイルにある場合、header()は機能しません。ヘッダー()の前にPHPファイル内に空白や何らかの出力がないか、ヘッダーがすでに送られているので動作しません。

if(headers_sent()) 
{ 
    echo "headers already sent!"; 
} 
+0

出力バッファリングがオンでない限り。しかし、通常はデフォルトではありません。問題は、コードがbodyタグの後にあることです。したがって、上記の答えに記載されている出力は、html、headタグ、およびbodyタグを開くことになります。 – Josh

関連する問題