Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [php] Gubienie części sesji w IE 6
Forum PHP.pl > Forum > PHP
pitbull82
Witam

Mam następujący problem - w sesji przechowuję aktualnie wybrany język - u mnie działa w Firefoxie, IE6, IE7, opera itd. na innym komputerze ie6, firefox też działa poprawnie.

Okazało się, że u 2 osób jest gubiona wartość tej zmiennej, chociaż SID jest zachowany w cookie i jest zapamiętany stan użytkownika (zalogowanie/wylogowanie).

Dodałem do kodu wyświetlanie komunikatu i poprosiłem osobę, u której jest błąd - właśnie na IE6 żeby klikała krok po kroku to co jej mówię i podawała mi wypisywane komunikaty - wszystko wskazuje na to, że w pewnym miejscu bez żadnego powodu, wybrany język jest gubiony - u mnie komunikat jest inny niż u tej osoby. Po zainstalowaniu Firefoxa, tej osobie bez problemu już działa, a nie ma zastosowanego w kodzie żadnego mechanizmu zależnego od przeglądarki.

Czy ktoś z Was może spotkał się z podobnym problemem? A może jest jakiś bug w IE6, o którym nie wiem?

Pozdrawiam i proszę o informacje
PiratNowegoPokolenia
nie do końca to ma sens. do przeglądarki ląduje tylko SID a zawartość sesji jest zapisana po stronie serwera

`gubi` ci tylko informacje o języku ?
pitbull82
No właśnie wiem, że to nie do końca ma sens smile.gif

Faktem jest że przy jednym wywołaniu mam komunikat: Ustawiam aktualny język: eng i już nigdzie później nie jest wykonywana zmiana języka,

A po kliknięciu na link i przeładowaniu strony jest: AKTUALNIE WYBRANY JEZYK: pl

Tak jak mówię nie działa to tylko w wybranych IE...

U mnie ta sama sekwencja kliknięć we wszystkich przeglądarkach co u osób z problemem, i mam obu wersjach wypisany język ENG.

Sorry, za podwójny post, ale dodałem jeszcze wyświetlanie zmiennych sesyjnych
  1. <?php
  2.  
  3. if (strstr($_SERVER['HTTP_HOST'], "www.")===false)
  4. {
  5. header("Location: <a href="http://www.test.host.pl".$_SERVER" target="_blank">http://www.test.host.pl".$_SERVER</a>['REQUEST_URI']);
  6. exit();
  7. }
  8.  
  9. echo "<strong>ZMIENNE SESYJNE</strong><br /> ";
  10. foreach ($_SESSION as $k => $v)
  11. echo $k." ".$v."<br />";
  12. echo "<br /><br />";
  13.  
  14.  
  15. // tutaj cały kod strony
  16.  
  17.  
  18. echo "<strong>ZMIENNE SESYJNE</strong><br /> ";
  19. foreach ($_SESSION as $k => $v)
  20. echo $k." ".$v."<br />";
  21.  
  22.  
  23. echo "<br /><br /><strong>ZMIENNE SESYJNE</strong><br /> ";
  24. foreach ($_SESSION as $k => $v)
  25. echo $k." ".$v."<br />";
  26. ?>


po zmianie języka mam z polskiego na duński mam

Kod
ZMIENNE SESYJNE
hostlang pl

// tutaj się wyświetla kod HTML strony


ZMIENNE SESYJNE
hostlang dk


ZMIENNE SESYJNE
hostlang dk


najpierw jest PL a później DK bo pomiędzy zmienia się wartość sesji.


Uruchamiam następnie plik http://www.test.host.pl/index.php (czyli ten sam który był odpalony) i mam już:

Kod
ZMIENNE SESYJNE
hostlang pl

// tutaj się wyświetla kod HTML strony


ZMIENNE SESYJNE
hostlang pl


ZMIENNE SESYJNE
hostlang pl


co w zasadzie jest niemożliwe, bo przecież nic nie było innego między tymi dwoma wywołaniami i skoro ostatni raz było

ZMIENNE SESYJNE
hostlang dk

to teraz na początku powinno być to samo, a nie jest.


Nie wiem czy to coś zmienia, ale mam takiego htaccessa:

Kod
RewriteEngine On

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule (.*)(.*)/?$ index.php?url=$1&%{QUERY_STRING}


Tak jak mówię - pierwszy raz spotkałem się z problemem i wydaje mi się on póki co bardzo dziwny.

Pozdrawiam
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.