Как заставить IE8 не показывать мою страницу PHP как пустую - PullRequest
0 голосов
/ 20 августа 2009

Я создаю веб-сайт для статей. У меня есть PHP-скрипт под названием view_article.php, который отображает статьи. Страница знает, какую статью показывать, используя переменную $ _GET в URL.

Например:

/view_article.php?article_id=1  views article 1
/view_article.php?article_id=2  views article 2

Вот подвох. В IE8 при просмотре статьи 1 страница отображается нормально, но при просмотре статьи 2 IE отображает страницу как пустую. Он запускает тот же скрипт, так как / почему он отображает страницу как пустую?

Из 4 компьютеров, на которых я это пробовал, он может воспроизводиться 100% времени на 2 из 4 компьютеров, и никогда не происходит на 2 других компьютерах. Firefox и Chrome не имеют проблем с отображением страниц.

У меня включены все сообщения об ошибках, но ничего не отображается

Любые идеи о том, почему это происходит и как я могу это исправить? Не только те страницы статей, которые не работают, но и другие страницы на сайте также не работают (возможно, 10% из примерно 50 различных страниц сценариев php не работают в IE8 согласованно на этих двух компьютерах, и один из них страницы моя страница регистрации). Что я могу сделать? Я обеспокоен тем, что 10% моих пользователей не смогут получить доступ к моему веб-сайту. Большинство пользователей сайта будут использовать IE. Спасибо за любые предложения

EDIT

Просмотр источника Некоторые полезные люди предложили просмотреть источник. Просмотр источника на компьютере, который показывает пустое, и компьютер, который показывает страницу должным образом, практически идентичны, за исключением того, что на компьютере, который показывает пустое, есть некоторые искаженные символы, которые отображаются после последнего тега. Я не делаю ничего, что связано с турецким языком, а также компьютеры, доставляющие мне проблемы, находятся на Тайване, а браузеры - на китайском (*).

 ` ` ? ?¢F @ ? ? ? ??¨t?0 ?? ?�Ã? ? ? $ ? ???Psprog Psprog Regular Turkish uropean ðK? ¡I?$ W ? ` ` ? ?¢F @$? ? ? �ü ģ ?? ?�Ã? ? ? ? ???·s�ө��é ·s�ө��é Regular Turkish uropean ðK? ¡I? ? ` ` ¢D�¼ ?¢F @ ? ? ? ? �Ã? ? ? ? 

Заголовки HTTP Кто-то предложил изучить заголовки. Я действительно не знаю, что я ищу, поэтому я использовал веб-сниффер. Вот вывод:

HTTP REQUEST HEADERS
Connect to 66.147.230.147 on port 80 ... ok

GET /articles/trends HTTP/1.1[CRLF]
Host: www.example.com[CRLF]
Connection: close[CRLF]
User-Agent: Web-sniffer/1.0.29 (+http://web-sniffer.net/)[CRLF]
Accept-Encoding: gzip[CRLF]
Accept-Charset: ISO-8859-1,UTF-8;q=0.7,*;q=0.7[CRLF]
Cache-Control: no[CRLF]
Accept-Language: de,en;q=0.7,en-us;q=0.3[CRLF]
Referer: http://web-sniffer.net/[CRLF]
[CRLF]


HTTP RESPONSE HEADERS
HTTP Status Code: HTTP/1.1 200 OK
Date:   Thu, 20 Aug 2009 07:06:40 GMT   
Server: Apache/2.2.13 (Unix) mod_ssl/2.2.13 OpenSSL/0.9.8k DAV/2 mod_auth_passthrough/2.1 mod_bwlimited/1.4 FrontPage/5.0.2.2635    
X-Powered-By:   PHP/5.2.9   
Expires:    Thu, 19 Nov 1981 08:52:00 GMT   
Cache-Control:  no-store, no-cache, must-revalidate, post-check=0, pre-check=0  
Pragma: no-cache    
Set-Cookie: PHPSESSID=1e8520adc7a127590d4f59cb37ca0c98; path=/  
Connection: close   
Transfer-Encoding:  chunked 
Content-Type:   text/html

Ответы [ 5 ]

1 голос
/ 20 августа 2009

Я никогда не видел этого раньше - вот несколько советов по отладке. Дайте мне URL, и я попробую его вживую.

1) Проверьте, вернетесь ли вы HTML (просмотрите исходный код, используйте анализатор проводов)

2) Если вы возвращаете HTML, вероятно, что-то делает document.write после загрузки страницы. Перезапишите document.write и посмотрите, кто его вызывает:

<script>
  var old = document.write;
  document.write = function(){
    printStackTrace();
    old.call(document);
  }
<script>

Вот код для печати трассировки стека: http://eriwen.com/javascript/js-stack-trace/

1 голос
/ 21 августа 2009
  1. Этот странный вывод, который вы видите в IE - выглядит для меня подозрительно как шрифт. Вы вставили какие-либо шрифты на этой странице? Попробуйте отключить / закомментировать это сейчас и посмотреть, если это имеет значение.

  2. Могу ли я также предложить вам подтвердить свой HTML здесь:

http://validator.w3.org/#validate_by_input

Посмотрите, есть ли какие-либо очевидные ошибки, которые мешают IE отображать его. Плюс - с какой версией IE вы ее тестируете?

3. Теги. Если вы выводите xthml и используете этот синтаксис:

<script ..../>

попробуйте изменить его на:

<script ...>your script</script>

метки 4.META с типом контента

Удалить и используйте PHP, чтобы добавить его в заголовок:

заголовок ( "Content-type: ....")

1 голос
/ 20 августа 2009

Может быть, есть плагины, такие как баннер Blocker?

0 голосов
/ 01 октября 2009

Спасибо всем за вашу помощь. В конце концов, я решил эту проблему. Вот что случилось с теми, кто хочет знать ответ или имеет похожую проблему:

Сайт, для которого я разрабатываю, находится на Тайване (и я разработчик из Северной Америки). Эта пустая страница IE была только на компьютере в Тайване с использованием IE. Я обнаружил, что для репликации этой тестовой среды мне пришлось переключить региональные настройки Windows на китайский (Тайвань). Это позволило мне воспроизвести ошибку на моей локальной машине в Канаде.

Затем я обнаружил, что IE не отображал страницу, потому что кодировкой IE по умолчанию была китайская традиционная (Big5). Для отображения страницы необходимо переключить кодировку на UTF-8.

Поэтому я принудительно закодировал мой файл .htaccess с помощью: AddDefaultCharset UTF-8 (только указание кодировки в метатеге в html не сработало, поскольку оно уже было установлено в utf-8).

0 голосов
/ 22 августа 2009

Вместо того, чтобы делать снимок трафика, который не соответствует тому, что получает браузер, вы должны проверить, чтобы точно узнать, что получает браузер. Для этого используйте Fiddler (www.fiddler2.com).

Это также позволит вам захватить файл журнала (в формате SAZ / Session Archive Zip) и поделиться им с другими, чтобы мы могли точно видеть, что вы видите.

Я предполагаю, что ваш HTTP-ответ искажен и загрязняет сокет для последующего запроса.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...