Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Serwer czasem zwraca poprawną odpowiedź, czasem nie, ale tylko w IE :)
gargamel
post
Post #1





Grupa: Zarejestrowani
Postów: 278
Pomógł: 35
Dołączył: 25.06.2010

Ostrzeżenie: (0%)
-----


Mam plik na serwerze. Co w nim jest - nieistotne, może to być echo 'hello world.'; Problem jest taki, że jeśli odpalam ten plik w przeglądarce ( dotyczy to tylko IE, na innych jest w porządku), to czasem wyświetli się oczekiwana odpowiedź, a czasem puste okno...

Tak wyglądają logi odwiedzin serwera:
Kod
[27/Mar/2012:02:49:18 +0200] "GET /path/file.php?service=order HTTP/1.0" 200 539 "-" "Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; WOW64; Trident/5.0)"
[27/Mar/2012:02:49:18 +0200] "GET /path/file.php?service=order HTTP/1.0" 200 343 "-" "Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; WOW64; Trident/5.0)"
[27/Mar/2012:02:49:19 +0200] "GET /path/file.php?service=order HTTP/1.0" 200 539 "-" "Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; WOW64; Trident/5.0)"
[27/Mar/2012:02:49:19 +0200] "GET /path/file.php?service=order HTTP/1.0" 200 539 "-" "Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; WOW64; Trident/5.0)"
[27/Mar/2012:02:49:20 +0200] "GET /path/file.php?service=order HTTP/1.0" 200 539 "-" "Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; WOW64; Trident/5.0)"
[27/Mar/2012:02:49:21 +0200] "GET /path/file.php?service=order HTTP/1.0" 200 539 "-" "Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; WOW64; Trident/5.0)"
[27/Mar/2012:02:49:23 +0200] "GET /path/file.php?service=order HTTP/1.0" 200 343 "-" "Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; WOW64; Trident/5.0)"
[27/Mar/2012:02:49:23 +0200] "GET /path/file.php?service=order HTTP/1.0" 200 539 "-" "Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; WOW64; Trident/5.0)"
[27/Mar/2012:02:49:24 +0200] "GET /path/file.php?service=order HTTP/1.0" 200 539 "-" "Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; WOW64; Trident/5.0)"
[27/Mar/2012:02:49:25 +0200] "GET /path/file.php?service=order HTTP/1.0" 200 539 "-" "Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; WOW64; Trident/5.0)"
[27/Mar/2012:02:49:26 +0200] "GET /path/file.php?service=order HTTP/1.0" 200 343 "-" "Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; WOW64; Trident/5.0)"
[27/Mar/2012:02:49:27 +0200] "GET /path/file.php?service=order HTTP/1.0" 200 539 "-" "Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; WOW64; Trident/5.0)"
[27/Mar/2012:02:49:28 +0200] "GET /path/file.php?service=order HTTP/1.0" 200 343 "-" "Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; WOW64; Trident/5.0)"


Wpisy gdzie zwrócona liczba bajtów wyosi 539 odpowiada sytuacji gdy strona się wyświetliła, gdy bajtów było 343 - dostawałem puste okno.
Jeśli plik ma wykonać jakąć czynność ( np. zapis do bazy ) - to tak samo: raz się zapisze, a raz nie.

Będę bardzo wdzięczny, jeśli ktoś podpowie gdzie szukać smile.gif
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 6)
zegarek84
post
Post #2





Grupa: Zarejestrowani
Postów: 1 332
Pomógł: 294
Dołączył: 12.10.2008
Skąd: Olkusz

Ostrzeżenie: (0%)
-----


343 to zapewne wielkość nagłówków... ustaw w nagłówkach albo długość odpowiedzi (musiałbyś to zbuforować) "Content-Length: ..." lub wyślij odpowiedź w trybie chunked - też powinno pomóc gdyż tam też podaje się rozmiar odpowiedzi...
http://www.httpwatch.com/httpgallery/chunked/
Chunked transfer encoding

zresztą mógłbyś dać linka do przykładowej strony...


--------------------
Jeśli twoja ręka rusza do przodu powstrzymaj swój gniew; gdy wyprzedza cię twój gniew - wycofaj rękę.

Go to the top of the page
+Quote Post
gargamel
post
Post #3





Grupa: Zarejestrowani
Postów: 278
Pomógł: 35
Dołączył: 25.06.2010

Ostrzeżenie: (0%)
-----


Tu jednak nie chodzi o długość zwracanej odpowiedzi. To co dzieje się nie tak, odbywa się gdzieś wcześniej...
Chodzi o to że serwer za kazdym razem widzi odwiedziny danego pliku, ale nie zawsze go wykona - czasem reaguje jakby był to zupełnie pusty plik. Stąd tak jak mówiłem, jeśli plik ma wykonywać zapis do bazy, to raz go wykona, a raz nie.

Zauważyłem ponadto, że jeśli wywalę .htaccess i odwołam się bezpośrednio do pliku - wszystko działa jak należy.

.htaccess którego używam to:

Kod
RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^([a-zA-Z0-9\_\-\/]+)(.php|.htm|.html)?$ index.php?a=$1.php [L,QSA]


logi błędów serwera są puste.
Go to the top of the page
+Quote Post
zegarek84
post
Post #4





Grupa: Zarejestrowani
Postów: 1 332
Pomógł: 294
Dołączył: 12.10.2008
Skąd: Olkusz

Ostrzeżenie: (0%)
-----


tak, ale jak wspomniałeś problem dotyczy tylko IE - jak dla mnie to przeglądarka zrywa połączenie... możesz to zresztą sprawdzić korzystając z funkcji typu ignore_user_abort


--------------------
Jeśli twoja ręka rusza do przodu powstrzymaj swój gniew; gdy wyprzedza cię twój gniew - wycofaj rękę.

Go to the top of the page
+Quote Post
gargamel
post
Post #5





Grupa: Zarejestrowani
Postów: 278
Pomógł: 35
Dołączył: 25.06.2010

Ostrzeżenie: (0%)
-----


zegarek84 trochę mnie naprowadziłeś na rozwiązanie smile.gif W różnych miejscach kodu umieszczałem die( "".connection_status ()."" ); i sprawdzałem co się dzieje.
Wszystkie pliki były kierowane do pliku index.php który z nimi coś tam robił. Plik ten korzystał z metody którą zrobiłem do startowania sesji:
  1. private function InitializeSession(){
  2. if( !isset( $_SESSION['ini'] ) ){
  3. $_SESSION['ini'] = true;
  4. $_SESSION['remote_addr'] = $_SERVER['REMOTE_ADDR'];
  5. $_SESSION['http_user_agent'] = $_SERVER['HTTP_USER_AGENT'];
  6. }
  7. if( $_SESSION['ini'] ){
  8. if( $_SESSION['remote_addr'] != $_SERVER['REMOTE_ADDR'] || $_SESSION['http_user_agent'] != $_SERVER['HTTP_USER_AGENT'] ){
  9. die();
  10. }
  11. else{
  12. }
  13. }
  14. }


Przy kolejnych odświeżaniach strony w IE9, do serwera była wysyłana inna wartość IP, przez co wykonywało się

  1. die();


Czemu IP wysyła się różne (mimo że mam stałe IP) to nie wiem... Chociaż - w końcu to explorer smile.gif

Dzięki za pomoc smile.gif
Go to the top of the page
+Quote Post
zegarek84
post
Post #6





Grupa: Zarejestrowani
Postów: 1 332
Pomógł: 294
Dołączył: 12.10.2008
Skąd: Olkusz

Ostrzeżenie: (0%)
-----


Cytat(gargamel @ 27.03.2012, 18:30:09 ) *
Czemu IP wysyła się różne (mimo że mam stałe IP) to nie wiem...

możesz mieć ustawione proxy w IE lub w jakimś antywirusie np. dla IE (chyba w COMODO taką opcję dla stron internetowych widziałem...) albo tor'a jeśli instalowałeś ustawiłeś na IE i zapomniałeś wyłączyć...


--------------------
Jeśli twoja ręka rusza do przodu powstrzymaj swój gniew; gdy wyprzedza cię twój gniew - wycofaj rękę.

Go to the top of the page
+Quote Post
gargamel
post
Post #7





Grupa: Zarejestrowani
Postów: 278
Pomógł: 35
Dołączył: 25.06.2010

Ostrzeżenie: (0%)
-----


No właśnie nic z tych rzeczy smile.gif IE mam tylko po to żeby testować stronki - nic tam nie grzebałem. Tak czy owak olać to smile.gif Skrypt działa biggrin.gif
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 20.08.2025 - 06:12