Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Problem z wyświetleniem strony
Forum PHP.pl > Forum > PHP
slimboj
Witam,
Mam napisany skrypt logowania oparty na sesjach.
Wszystko działa cacy tylko, że przeglądając elementy strony (podstrony, itp.) po kliknięciu na link strona robi się biała i na tym koniec. Po wciśnięciu F5 strona ładuje się jak należy. Problem pojawia się jedynie pod IE6, co ciekawe po usunięciu z kodu: session_start() wszystko jest oki (oczywiście nie rejestruje sesji).
Moje pytanie brzmi czy jest to bug IE6? Czy może ja coś nie tak napisałem, zwłaszcza, że inne strony oparte na sesjach, jak np. sklepy internetowe działają ok! Aha, no i czy jest jakiś sposób na obejście tego problemu smile.gif
Mize
Wstaw kod tej strony, która wyświetlana jest pusta.
slimboj
Zaznaczam, że problem pojawia się jedynie w IE6, testowałem na FF i IE7 i na nich działa poprawnie.

Klasa login:
  1. <?php
  2. class login
  3. {
  4. function __construct()
  5.  {
  6.   if(!isset($_SESSION['user']))
  7.    {
  8.     $sign_in=mysql_query("SELECT * FROM e_users WHERE user_login='".$_POST['login']."' AND user_password=md5('".$_POST['password']."')");
  9.     if(!$q_sign_in=mysql_fetch_row($sign_in))
  10.      {
  11.       $this -> login_form();
  12.       session_destroy();
  13.      }
  14.     else
  15.      {
  16.       $_SESSION['user']=$q_sign_in[1];
  17.       $this -> login_profile();
  18.      }
  19.    }
  20.   elseif($_GET['action']=='logout')
  21.    {
  22.     unset($_SESSION['user']);
  23.     session_destroy();
  24.    }
  25.   else
  26.    {
  27.     $this -> login_profile();
  28.    }
  29.  }
  30. function login_form()
  31. {
  32.  echo("<form action=\"index.php\" method=\"post\">
  33.         login:&nbsp;<input type=\"text\" name=\"login\">
  34.         &nbsp;&nbsp;&nbsp;
  35.         hasło:&nbsp;<input type=\"password\" name=\"password\">
  36.         &nbsp;&nbsp;&nbsp;
  37.         <button type=\"submit\">zaloguj</button>
  38.        </form>");
  39. }
  40. function login_profile()
  41. {
  42.  echo("Jesteś zalogowany jako: <b>".$_SESSION['user']."</b>&nbsp;&nbsp;&nbsp;<a href=\"index.php?action=logout\">wyloguj</a>");
  43. }
  44. }
  45. ?>

A tutaj index:
  1. <?php
  2.  
  3. echo("<div class=\"login\">");
  4.          $login_sys= new login;
  5. echo("</div>");
  6. ?>


Przy okazji, jak zmienić/usunąć SID po wylogowaniu?
Konio
Też odnotowałem takie zachowanie IE6. Gdy plik wynikowy/strona jest zbyt mała czasem wyświetla się jako pusta strona.
Rozwiązanie znalaząłem takie, że ładuje tam trochę tekstu w komenatrzu i działa. Niemniej jest to mało eleganckie. Nie googlowałem w celu znalezienia rozwiąznaia na to.
slimboj
To nic nie daje, wrzuciłem duuużo komentarzy do kodu i efekt jest ten sam. Zauważyłem jeszcze inną dziwną rzecz, a mianowicie w IE6 po zamknięciu okna przeglądarki i ponownym jej uruchomieniu nie zmienia się SID. W IE7 i FF ten problem nie występuje... Może to jest jednak problem z sesjami, a nie koniecznie z samą przeglądarką.

EDIT:
Dobra, wiem już, że nie jest to kwestia ani skryptu, ani przeglądarki tylko serwera. Wrzuciłem stronę na inny serwer i na tej samej przeglądarce wszystko śmiga ok. Sprawdziłem konfigurację, zwracając szczególną uwagę na ustawienia sesji, na obu serwerach za pomocą phpinfo() i jedyna różnica:
A dokładnie w SESSION:

Serwer gdzie jest OK:
-----------------------------------
Registered serializer handlers: php php_binary
session.save_path: No Value

Serwer gdzie nie jest OK:
------------------------------
Registered serializer handlers: php php_binary wddx
session.save_path: /var/lib/php5

session.save_path jest taki sam local value i master value w obu przypadkach.
Szczerze to jestem trochę na bakier z konfiguracją PHP bo korzystam z serwera hostingowego, więc jeśli nie jest to to co napisałem wyżej to prosiłbym o jakąś podpowiedź.
Pozdrawiam,
gregi1
To moze nie bedzie zbyt odkrywcze, ale chyba raczej pora odejsc juz od IE6, bowiem MS przestal wspierac ta przegladarke nie mozna jej nawet pobrac.
slimboj
Odkrywcze to nie jest rzeczywiście tongue.gif ale jak się okazuje, niektórzy mają tylko takie przeglądarki, w niektórych firmach dział IT jest naprawdę oporny na aktualizacje aplikacji. smile.gif
A tab BTW. to przynajmniej ja mam taką zasadę, że jak tworzę jakąś aplikację to testuję ją pod wszystkimi najpopularniejszymi przeglądarkami, właśnie po to, żeby nie było potem takich kwiatków...
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.