![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 6 Pomógł: 0 Dołączył: 11.10.2013 Ostrzeżenie: (0%) ![]() ![]() |
Witam. Pierwszy raz tutaj - proszę o odrobinę cierpliwości.
Mam problem, od dłuższego czasu zaangażowany jestem w tworzenie sporego serwisu, zawierającego wiele elementów, połączenie z aplikacjami po stronie klienta itd. I pojawił mi się banalny na pierwszy rzut oka problem, z którym walczę od ponad miesiąca. Problem wygląda tak: Mój klient próbuje się zalogować do systemu, system pozwala mu na to, potem po przejściu na inną stronę gubi zmienne sesyjne, a przy drugim logowaniu nie ma żadnego problemu i wszystko działa. Problem występuje na kilkunastu komputerach tego klienta, stojących w różnych podsieciach, ale TYLKO na jego komputerach. Testowałem to na kilkunastu, może kilkudziesięciu innych maszynach i wszytko działa poprawnie. By było śmieszniej, testowo postawiłem serwer u innego dostawcy, na nim testową aplikację, opierającą się na tym samym mechanizmie logowania i znów - wszędzie działa, u niego nie. By ułatwić znalezienie potencjalnego błędu zrobiłem sobie skrypt testowy, który u klienta nie działa: Plik logowanie_test.php: CODE <?php session_start(); error_reporting(E_ALL); echo '<!DOCTYPE html>'; echo '<head>'; echo '<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />'; if (isset($_POST['pr_mail'])) { $_SESSION['ID_pracownika'] = 10; $ID = $_SESSION['ID_pracownika']; echo '<br>$_SESSION[ID_pracownika]: '.$ID ; echo '<br>session_ID: '.session_id() ; echo '<meta http-equiv="refresh" content="10;URL=http://mojehr.pl/logowanie_test2.php">'; exit(); } ?> <form action="logowanie_test.php" method="post" enctype="multipart/form-data" name="logform" > Wpisz cokolwiek i wcisnij przycisk <input name="pr_mail" type="text" maxlength="64" > <input class="input_submit" name="Submit" type="submit" value="Zaloguj" /> </form> </body> </html> Plik logowanie_test2.php: CODE <?php session_start(); error_reporting(E_ALL); $ID = $_SESSION['ID_pracownika']; echo '<br>$_SESSION[ID_pracownika]: '.$ID ; echo '<br>session_ID: '.session_id() ; exit; ?> Echa pokazują ID sesji oraz wartość zmiennej, gdy następuje przeskok do drugiego pliku, sesja jest gubiona i kasowana jest zmienna $_SESSION['ID_pracownika']. Podkreślam, że błąd pojawia się tylko na określonej grupie komputerów, niezależnie od przeglądarki, konsekwentnie i za każdym razem, za każdym razem też, druga próba logowania jest poprawna. Komputery mają WindowsXP i Windows7. Co więcej - błąd nie pojawia się na innych komputerach podpiętych do tych podsieci, na których pracuje firma. Dodam, że na komputerach mojego klienta bez problemu chodzą inne strony i problem ten nie pojawia się gdzie indziej. Wersja serwera: 5.4.15, jeżeli potrzebna jest jakaś informacja z phpinfo(); mogę je dostarczyć w każdej chwili. Teraz pytanie: Co może powodować taki błąd? Czy mogę go w jakiś sposób poprawić lub ominąć? Czy może być to problem po stronie konfiguracji klienta, a jeżeli tak, to w jaki sposób mogę go wskazać? Pozdrawiam i z góry dziękuję za odpowiedź. Ten post edytował Kvokul 11.10.2013, 15:16:35 |
|
|
![]() ![]() |
![]() |
Aktualny czas: 24.08.2025 - 06:05 |