2012-05-10 3 views
0

나는 나와 함께 곰 :) 그때 별도의 HTML 페이지로 사용자를 직접 PHP에서 get_user_browser 기능을 사용할 수있는 웹 페이지를 만들려고하고IE 용 조건부 PHP가 다른 사이트로 연결 되나요?

그래서 PHP와 꽤 새로운 오전.

내 웹 사이트가 http://www.danabohne.com이고 방금 IE에서 거의 볼 수 없다는 것을 깨달았습니다. 다른 방법이 없으면 IE 사용자가 볼 수있는 별도의 정적 HTML 사이트를 만들고 싶습니다.

의견이 있으면 도움이 될 것입니다.

+3

사이트가 작동하지 않을 이유가 없으므로 문제를 해결해야합니다. 브라우저 문제로 인해 두 개의 다른 웹 사이트를 운영하는 것이 훨씬 적습니다. –

+0

IE의 어떤 버전을 테스트하고 있습니까? IE8에서 거의 볼 수 없다면 약간의 작업이 필요할 수도 있지만, IE6에 포함되어 있다면 이전 버전을 지원할 특별한 이유가없는 한 실제로는 중요하지 않습니다. 브라우저. – Spudley

+0

CSS를 보셨습니까? – hogni89

답변

1
<?php 
$useragent = $_SERVER['HTTP_USER_AGENT']; 
if(strpos($useragent,"MSIE 6.0")) { 

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

} 
?> 

필요에 따라 if 개의 조건을 추가 할 수 있습니다.

그러나 John이 의견에서 언급 한 것처럼. 별도의 스타일 시트를 만들고 다른 페이지로 리디렉션하지 않고 대체 디자인을 만드는 것이 좋습니다.

+0

@Dana, _'strpos()'메서드를 사용하지 마십시오! Spudley의 답변에서 조언을 취하고 [조건부 스타일 시트] (http://www.quirksmode.org/css/condcom.html)로 IE 관련 문제를 처리하십시오. – Bojangles

+0

@JamWaffles 그건 내가 내 대답의 마지막 부분에서 말한 것이다. 조건부 스타일 시트와 폴백이 가장 좋습니다. 그러나 나는 그녀가 그렇게 많은 일을하고 싶지 않다고 생각합니다. – Niranjan

1

먼저 브라우저에서 잘못된 사용자 에이전트 세부 정보를 제공하거나 전혀 제공하지 않을 수 있으므로 서버에서 브라우저를 검색하지 않는 것이 중요합니다. (나는 http 헤더에서 이러한 종류의 데이터를 정기적으로 제거하는 일부 방화벽 제품을 알고있다.)

두 번째로 유효한 browsecap.ini 파일이있는 경우에만 get_user_browser 기능이 작동합니다. 함수가 제대로 작동하지 않는 경우이 ini 파일이 있고 최신 버전인지 확인하십시오. (또한 새로운 브라우저 나 브라우저 버전이 출시 될 때마다 업데이트를 유지해야합니다).

마지막으로 대부분의 (사실상 모든) IE 관련 디스플레이 문제는 IE 용으로 별도의 페이지를 만들지 않고도 해결할 수 있습니다.

문제는 바로 앞에 코드의 첫 번째 줄에있는 <pre></pre>입니다 : 페이지의 HTML 소스 코드를 볼 때

귀하의 경우 특히

, 그 문제가 바로 무엇인지 볼 수 있습니다 <!DOCTYPE>. 나는 이것이 제대로 제거되지 않은 일부 디버깅 코드에서 남겨진 것이라고 가정합니다.

<pre></pre>은 IE가 <pre>을보고 doctype이 없다고 가정하기 때문에 IE가 "quirks mode"로 떨어지게 만듭니다. doctype이 없으면 IE는 페이지가 quirks 모드 여야한다고 가정합니다.

Quirks 모드를 사용하면 IE의 렌더링 엔진이 페이지를 완전히 다르게 표시합니다 (기본적으로 IE5 - 역방향 호환 모드). 따라서 IE에서 페이지가 쓰레기로 보이는 것은 당연합니다.

이 동작은 모든 버전의 IE에서 동일합니다.

다른 IE 관련 문제가있는 경우 페이지에서 문제를 해결하는 것이 좋습니다. IE를 효과적으로 작동시키는 데 유용한 도구와 해킹이 많이 있습니다.

희망이 있습니다.

+0

좋은 곳 @ Spudley. :). '

'는 참으로 쿼크 모드를 트리거합니다. –
                        
                            
    Niranjan
                                
                            
                        
                    

관련 문제