ホームページ > バックエンド開発 > PHPチュートリアル > PHP ヘッダーを使用したページ ジャンプの問題のトラブルシューティング_PHP チュートリアル

PHP ヘッダーを使用したページ ジャンプの問題のトラブルシューティング_PHP チュートリアル

WBOY
リリース: 2016-07-15 13:32:12
オリジナル
1055 人が閲覧しました

ページにジャンプするときは、通常

を使用します。 header("location:test.php") を使用して PHP でジャンプする場合は、次の点に注意してください。これは、Web サイトで発生する一般的な問題の解決に役立ちます。初心者向けの質問

1. location と ":" の間にスペースを入れることはできません。スペースを入れないとエラーが発生します。
2. ヘッダーを使用する前に出力を行うことはできません。
3. ヘッダー以降の PHP コードも実行されます。

以下は、ASP の response.redirect との比較です:

例 1:

response.redirect "../test.asp"
header("location:../test.php");

2 つの違い:

asp のリダイレクト関数は、ヘッダー ファイルをクライアントに送信した後に機能します。
たとえば、

<ol class="dp-xml">
<li class="alt"><span><span class="tag">< </span><span class="tag-name">html</span><span class="tag">></span><span class="tag">< </span><span class="tag-name">head</span><span class="tag">></span><span class="tag">< /</span><span class="tag-name">head</span><span class="tag">></span><span class="tag">< </span><span class="tag-name">body</span><span class="tag">></span><span> </span></span></li>
<li>
<span class="tag">< </span><span>%response.redirect "../test.asp"%</span><span class="tag">></span><span> </span>
</li>
<li class="alt">
<span class="tag">< /</span><span class="tag-name">body</span><span class="tag">></span><span class="tag">< /</span><span class="tag-name">html</span><span class="tag">></span><span> </span>
</li>
</ol>
ログイン後にコピー

PHP の次のサンプル コードはエラーを報告します:

<ol class="dp-xml">
<li class="alt"><span><span class="tag"><</span><span> </span><span class="tag-name">html</span><span class="tag">></span><span class="tag"><</span><span> </span><span class="tag-name">head</span><span class="tag">></span><span class="tag"><</span><span> /head</span><span class="tag">></span><span class="tag"><</span><span> </span><span class="tag-name">body</span><span class="tag">></span><span> </span></span></li>
<li>
<span class="tag"><?</span><span> </span></li><li class="alt"><span class="tag-name">header</span><span>("location:../test.php");  </span></li><li><span class="tag">?></span><span> </span>
</li>
<li class="alt">
<span class="tag"><</span><span> /body</span><span class="tag">></span><span class="tag"><</span><span> /html</span><span class="tag">></span><span> </span>
</li>
<li><span>只能这样:  </span></li>
<li class="alt">
<span class="tag"><</span><span> ?   </span></li><li><span>header("location:../test.php");  </span></li><li class="alt"><span class="tag">?></span><span> </span>
</li>
<li>
<span class="tag"><</span><span> </span><span class="tag-name">html</span><span class="tag">></span><span class="tag"><</span><span> </span><span class="tag-name">head</span><span class="tag">></span><span class="tag"><</span><span> /head</span><span class="tag">></span><span class="tag"><</span><span> </span><span class="tag-name">body</span><span class="tag">></span><span>...</span><span class="tag"><</span><span> /body</span><span class="tag">></span><span class="tag"><</span><span> /html</span><span class="tag">></span><span> </span>
</li>
</ol>
ログイン後にコピー

つまり、PHP はデータを送信できません。
例 2:

asp

<ol class="dp-xml">
<li class="alt"><span><span class="tag"><</span><span> </span><span class="tag-name">html</span><span class="tag">></span><span class="tag"><</span><span> </span><span class="tag-name">head</span><span class="tag">></span><span class="tag"><</span><span> /head</span><span class="tag">></span><span class="tag"><</span><span> </span><span class="tag-name">body</span><span class="tag">></span><span> </span></span></li>
<li>
<span class="tag"><</span><span>%  </span></li><li class="alt"><span>response.redirect "../a.asp"  </span></li><li><span>response.redirect "../b.asp"  </span></li><li class="alt"><span>%</span><span class="tag">></span><span> </span>
</li>
<li>
<span class="tag"><</span><span> /body</span><span class="tag">></span><span class="tag"><</span><span> /html</span><span class="tag">></span><span> </span>
</li>
<li class="alt"><span>结果是重定向a.asp文件.  </span></li>
<li><span>php呢?  </span></li>
<li class="alt">
<span class="tag"><</span><span> ?  </span></li><li><span>header("location:../a.php");  </span></li><li class="alt"><span>header("location:../b.php");  </span></li><li><span class="tag">?></span><span> </span>
</li>
<li class="alt">
<span class="tag"><</span><span> </span><span class="tag-name">html</span><span class="tag">></span><span class="tag"><</span><span> </span><span class="tag-name">head</span><span class="tag">></span><span class="tag"><</span><span> /head</span><span class="tag">></span><span class="tag"><</span><span> </span><span class="tag-name">body</span><span class="tag">></span><span class="tag"><</span><span> /body</span><span class="tag">></span><span class="tag"><</span><span> /html</span><span class="tag">></span><span> </span>
</li>
</ol>
ログイン後にコピー

では、b.php をリダイレクトすることがわかりました。
asp でリダイレクトを実行した後、次のコードは実行されないことがわかりました。 header では、php は次のコードを実行し続けます
この点で、php でのヘッダーのリダイレクトは、リダイレクトしたい場合に、次のコードを実行できないことがあります。
通常、私たちは

<ol class="dp-xml">
<li class="alt"><span><span>if(...)  </span></span></li>
<li><span>header("...");  </span></li>
<li class="alt"><span>else  </span></li>
<li><span>{  </span></li>
<li class="alt"><span>...  </span></li>
<li><span>}  </span></li>
</ol>
ログイン後にコピー
を使用します。ただし、単に次の PHP ヘッダー メソッドを使用することもできます。

<ol class="dp-xml">
<li class="alt"><span><span>if(...)  </span></span></li>
<li><span>{ header("...");exit();}  </span></li>
</ol>
ログイン後にコピー
また、Unicode (UTF-8) でエンコードするときに問題が発生する可能性があり、PHP ヘッダーのキャッシュ設定を調整する必要があることに注意してください。

<ol class="dp-xml">
<li class="alt"><span><span class="tag"><</span><span> [</span><span class="attribute">email</span><span>=%@]%@</span><span class="attribute">LANGUAGE</span><span>=</span><span class="attribute-value">"VBSCRIPT[/email]"</span><span> </span><span class="attribute">CODEPAGE</span><span>=</span><span class="attribute-value">"936"</span><span>%</span><span class="tag">></span><span> </span></span></li>
<li>
<span class="tag"><</span><span> %if Request.ServerVariables("SERVER_NAME")="s.jb51.net" then  </span></li><li class="alt"><span>response.redirect "news/index.htm"  </span></li><li><span>else%</span><span class="tag">></span><span> </span>
</li>
<li class="alt">
<span class="tag"><</span><span> %end if%</span><span class="tag">></span><span> </span>
</li>
<li>
<span class="tag"><</span><span> </span><span class="tag-name">script</span><span class="tag">></span><span> </span>
</li>
<li class="alt">
<span>var </span><span class="attribute">url</span><span> = </span><span class="attribute-value">location</span><span>.href;  </span>
</li>
<li>
<span>if(url.indexOf('http://www.jb51.net/')!=-1)</span><span class="attribute">location.href</span><span>=</span><span class="attribute-value">'/index/index.htm'</span><span>;  </span>
</li>
<li class="alt">
<span>if(url.indexOf('http://www.kanshule.com/')!=-1)</span><span class="attribute">location.href</span><span>=</span><span class="attribute-value">'/index1/index.htm'</span><span>;  </span>
</li>
<li>
<span>if(url.indexOf('http://www.shouji17.com/')!=-1)</span><span class="attribute">location.href</span><span>=</span><span class="attribute-value">'/cn/index.asp'</span><span>;  </span>
</li>
<li class="alt">
<span>if(url.indexOf('http://www.baidu.com/')!=-1)</span><span class="attribute">location.href</span><span>=</span><span class="attribute-value">'/cn/index.asp'</span><span>;  </span>
</li>
<li>
<span class="tag"><</span><span> /script</span><span class="tag">></span><span>  </span>
</li>
</ol>
ログイン後にコピー
上記は一部です。 PHP ヘッダーを使用するときに注意すべき問題。


http://www.bkjia.com/PHPjc/446162.htmlwww.bkjia.comtru​​ehttp://www.bkjia.com/PHPjc/446162.html技術記事ページにジャンプするときは、通常、PHP のヘッダー (場所: test.php) を使用してジャンプします。初心者がよく遭遇するいくつかの問題を解決するのに役立つ次の点に注意してください。
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート