ホームページ  >  記事  >  バックエンド開発  >  PHPプログラムのヘッダ位置ジャンプの注意事項

PHPプログラムのヘッダ位置ジャンプの注意事項

伊谢尔伦
伊谢尔伦オリジナル
2017-06-23 14:02:163349ブラウズ

ご存知のとおり、PHP Web サイトにジャンプするには、JS、HTML META Refresh、および PHP header("location: $url") の 3 つの方法があります。ただし、ここにはエラーにつながりやすい非常に小さな詳細があります。

Header("location:test.PHP") は、次の 3 つの点に加えて、次の点に注意する必要があります。

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

前提として、エディタはUTF-8形式ではなく、UTF-8 BOMフリー形式で書かれていることが前提となります。覚えて!

一度ジャンププログラムを作ったのですが、この点を無視してしまい、実際にジャンプが失敗してしまいました。

プログラムの全ソースコードは以下の通り、プログラムアドレス:http://www.***.com/go.php

<?php
error_reporting(7);
$url = urldecode( trim($_REQUEST[&#39;url&#39;]));
if($url)
{
    header("Location: $url");

} else {

    exit(&#39;Error Input,<a href="http://www.***.com/?f=go.php">go back</a>&#39;);
}


アクセスアドレス:http://www.***の場合.com/go.php? url=http%3A%2F%2Fwww.zbphp.com%2F の場合、Firefox ブラウザは正常です。その後、このジャンプ プログラムを会社の別の Web サイトにコピーし、QQ 上の何人かの友人にテストしてもらいました。その結果、多くの人がこのプログラムを開くことができないと言いました。IE ベースのブラウザでは、アクセスできない、またはアクセスできないというメッセージが直接表示されました。が見つからず、Chrome で時々プロンプトが表示されます。 Firefox でテストすると、見つからないというプロンプトが表示されることがありますが、もう一度更新すると正常に表示されます。

コードをよく確認してください、問題ありません。それに、Firefox はジャンプできるので、過去に読んだことを思い出しました: IE ブラウザ 出力コンテンツのバイトが小さすぎる (512 バイト未満) 場合、無視されます。その後、すべてのブラウザがテストに合格する前に、ソース コードがヘッダーの場所から js HTML に変更され、Firefox のクリック プロンプト xxx サーバーが見つかりません が再度表示されなくなりました。go.php の完全なソース コードは次のとおりです。

<?php
error_reporting(7);
function gheader($url)
{
echo &#39;<html><head><meta http-equiv="Content-Language" content="zh-CN">
<meta HTTP-EQUIV="Content-Type" CONTENT="text/html;charset=gb2312"><meta http-equiv="refresh"
content="0;url=&#39;.$url.&#39;"><title>loading ... </title></head><body><p style="display:none">
<script type="text/javascript">
var cnzz_protocol = (("https:" == document.location.protocol)?"https://":"http://"); 
document.write(unescape("%3Cspan id=\&#39;cnzz_stat_icon_5696423\&#39;%3E%3C/span%3E%3Cscript src=\&#39;" + cnzz_protocol + "s9.cnzz.com/stat.php%3Fid%3D5696423%26show%3Dpic1\&#39; type=\&#39;text/javascript\&#39;%3E%3C/script%3E"));</script></p>
<script>window.location="&#39;.$url.&#39;";</script></body></html>&#39;;
exit();
}

$url = urldecode( trim($_REQUEST[&#39;url&#39;]));
if($url)
{
    gheader($url);

} else {

    exit(&#39;Error Input,<a href="http://www.***.com/?f=go.php">go back</a>&#39;);
}
PHPジャンプの場合は

JS+HTML META

を使うのが一番良いと思います。 HTML META を使用すると、 JS が無効になっている場合でも訪問者がジャンプできるようにすることができます

以上がPHPプログラムのヘッダ位置ジャンプの注意事項の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。