0

私はphpにかなり慣れていないので、我慢してください:)

get_user_browserPHP の関数を使用して、ユーザーを別の HTML ページに誘導できる Web ページを作成しようとしています。

私のウェブサイトはhttp://www.danabohne.comですが、IE ではほとんど表示されないことに気付きました。これを回避する別の方法がない限り、IE ユーザーが見ることができる別の静的 HTML サイトを作成したいと考えています。

どんなフィードバックでも非常に役に立ちます!

4

2 に答える 2

1

まず、サーバー上でのブラウザー検出は推奨されないことに注意することが重要です。これは、ブラウザーが偽のユーザー エージェントの詳細を提供したり、まったく提供しない可能性があるためです。(http ヘッダーからこの種のデータを日常的に削除するファイアウォール製品をいくつか知っています)。

次に、このget_user_browser機能は有効なファイルがある場合にのみ機能しbrowsecap.iniます。この関数が機能しない場合は、この ini ファイルがあり、最新のものであることを確認してください。(また、新しいブラウザーまたはブラウザーのバージョンがリリースされるたびに、更新を維持する必要があることに注意してください)。

最後に、ほとんど (事実上すべて) の IE 固有の表示の問題は、IE 用に別のページを作成しなくても解決できます。

特にあなたの場合、あなたのページの HTML ソース コードを見ると、問題が何であるかがすぐにわかります。

問題は、<pre></pre>コードの最初の行の の直前にある<!DOCTYPE>です。これは、適切に削除されていないデバッグ コードの残り物だと思います。

これ<pre></pre>により、IE は "quirks モード" に陥り<pre>ます。Doctype がない場合、IE はページが quirks モードであると想定します。

Quirks モードでは、IE のレンダリング エンジンがページをまったく異なる方法で表示します (基本的には IE5 下位互換モードです)。

この動作は、IE のすべてのバージョンで同じです。

IE 固有の問題が他にもある場合は、IE をより適切に動作させるためのツールやハックがたくさんあるため、ページでそれらを修正することをお勧めします。

それが役立つことを願っています。

于 2012-05-10T20:05:05.737 に答える
1
<?php
$useragent = $_SERVER['HTTP_USER_AGENT'];  
if( strpos($useragent,"MSIE 6.0") ) { 

  header("Location: http://google.com"); 

}
?>

if必要に応じて条件を追加できます。

ただし、ジョンがコメントで述べたように。別のページにリダイレクトするのではなく、別のスタイルシートを作成してフォールバック デザインを作成することをお勧めします。

于 2012-05-10T19:47:21.610 に答える