Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> Dziwne problemy z sesjami
molek1
post
Post #1





Grupa: Zarejestrowani
Postów: 6
Pomógł: 0
Dołączył: 3.12.2010

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


Witam.
Od kilku dni staram się dojść do tego czemu sesje mi działają na jednych komputerach, a na innych nie. Zrobiłem sobie małą namiastkę CMS'a, w którym wybrany język (jeden z czterech) pamiętany jest w zmiennej sesyjnej.
Skrypt działał gdy miałem go na hostingu netart. Po przeniesieniu go na home.pl nie działały sesje, ale tylko gdy skrypt był uruchamiany z poziomu Firefoxa. Po różnych kombinacjach stanęło na tym że zadziałało.
Zacząłem tworzyć panel administracyjny, na potrzeby którego przygotowałem prostą autoryzację i niestety, od ponad tygodnia nie mogę zrozumieć czemu to nie działa na nie niektórych komputerach/przeglądarkach. Na potrzeby testu przygotowałem trzy skrypty które również działają w kratkę! Oto one:
plik html

  1. <form method='POST' action='logowanie.php'>
  2. <b>nazwa uzytkownika:</b> <input type='text' name='login'><br>
  3. <b>haslo:</b> <input type='password' name='haslo'><br>
  4. <input type='submit' value='Wyślij' name='wyslij'>
  5. </form>


następnie logowanie.php

  1. <?php
  2. $_SESSION[login]=$_POST[login];
  3. $_SESSION[haslo]=$_POST[haslo];
  4. header ('Location: l2.php');
  5. ?>


i ostatni plik wyświetlający zmienną sesyjną:
  1. <?php session_start();?>
  2. <pre>
  3. <?php print_r($_SESSION); ?>
  4. </pre>


Wszystko wydaje się banalnie proste, ale nie działa

Sprawdziłem to dzisiaj na Firefoxie i chrome pod Windows 7, i działało prawidłowo
Niestety na innej siódemce (64 bit) nie działa pod żadną z wymienionych wyżej przeglądarek, ale działało pod IE.
Nie mam już do tego siły i nie potrafię znaleźć rozsądnego wyjaśnienia...

Ten post edytował molek1 11.09.2012, 20:13:23
Go to the top of the page
+Quote Post
Kshyhoo
post
Post #2





Grupa: Opiekunowie
Postów: 3 855
Pomógł: 317
Dołączył: 4.01.2005
Skąd: że




"Sesje nie działają", to za mało. Jakie objawy? Komunikaty? No i jak wykorzystujesz sesje?

Sesje wyświetl sobie tak:
  1. print('<pre>SESSION: ');
  2. print_r ($_SESSION);
  3. print('</pre>');


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





Grupa: Zarejestrowani
Postów: 346
Pomógł: 23
Dołączył: 28.11.2004

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


Ja widze zastosowanie jakis stalych w kodzie:

  1. $_SESSION[login]=$_POST[login];
  2. $_SESSION[haslo]=$_POST[haslo];


wydaje mi sie, ze chodzi jednak o zmienne smile.gif w sensie tekstowe offsety, czyli

  1. $_SESSION['login']=$_POST['login'];
  2. $_SESSION['haslo']=$_POST['haslo'];


taka drobna poprawka, ktora powinna zazegnac problem.

Ten post edytował no_face 11.09.2012, 22:24:27
Go to the top of the page
+Quote Post
molek1
post
Post #4





Grupa: Zarejestrowani
Postów: 6
Pomógł: 0
Dołączył: 3.12.2010

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


Cytat(Kshyhoo @ 11.09.2012, 21:25:36 ) *
"Sesje nie działają", to za mało. Jakie objawy? Komunikaty? No i jak wykorzystujesz sesje?

Pisząc że sesja nie działa, miałem na myśli że zmienna sesyjna nie trzyma danych - zamieściłem próbne skrypty by nie było wątpliwości że wiem jak wyświetlić wyszstko co przechowywane jest w $_SESSION. Dodam tylko że nie ma żadnych komunikatów.

Cytat(no_face @ 11.09.2012, 21:28:19 ) *
Ja widze zastosowanie jakis stalych w kodzie:

  1. $_SESSION[login]=$_POST[login];
  2. $_SESSION[haslo]=$_POST[haslo];


wydaje mi sie, ze chodzi jednak o zmienne smile.gif w sensie tekstowe offsety, czyli

  1. $_SESSION['login']=$_POST['login'];
  2. $_SESSION['haslo']=$_POST['haslo'];


taka drobna poprawka, ktora powinna zazegnac problem.


Niestety, nie pomogło - co prawda pod chrome zadziałąło, ale nie wiem czy to nie zbieg okoliczności, gdyż pod firefoxem działa na jednym z czterech komputerów. Nie działa wogóle pod androidem (przeglądarka domyślna + firefox).
Go to the top of the page
+Quote Post
viking
post
Post #5





Grupa: Zarejestrowani
Postów: 6 380
Pomógł: 1116
Dołączył: 30.08.2006

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


Jaki czas życia sesji, w jaki sposób tworzone cookie? Po co trzymasz hasło w sesji?


--------------------
Go to the top of the page
+Quote Post
molek1
post
Post #6





Grupa: Zarejestrowani
Postów: 6
Pomógł: 0
Dołączył: 3.12.2010

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


Cytat(viking @ 12.09.2012, 09:39:01 ) *
Jaki czas życia sesji, w jaki sposób tworzone cookie? Po co trzymasz hasło w sesji?

Czsu życia sessji nie ustawiałem, tak samo jak cookie - jest tylko to co w skryptach podanych wyżej.
Co do hasła w sesji - otrzywiście nie trzymam go tam, jedynie nazwę usera. W w/w skryptach hasło pojawia się tylk dlatego że są one stworzone do testów i namierzenia problemu, jest to po prostu jakaś wawrość wpisana do zmiennej sesyjnej i tyl.
Być może powinienem stworzyć całe środowisko (czas sesji, cookie itp.), ale czy jest to niezbędne by mieć pewność że zadzaiła na każdym komputerze?
Go to the top of the page
+Quote Post
viking
post
Post #7





Grupa: Zarejestrowani
Postów: 6 380
Pomógł: 1116
Dołączył: 30.08.2006

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


Musisz mieć jakieś podstawy do sprawdzenia. Pierwszym i oczywistym jest przyjrzenie się samemu cookie w przeglądarce. Drugim to włączenie wszystkich błędów i sprawdzenie czy np nie wyświetla się komunikat o wcześniej wysłanych nagłówkach. Może być też różny czas serwera od klienta co przy typowym cookie oczywiście już na wstępie spowoduje przeterminowanie.


--------------------
Go to the top of the page
+Quote Post
molek1
post
Post #8





Grupa: Zarejestrowani
Postów: 6
Pomógł: 0
Dołączył: 3.12.2010

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


Jestem zdziwiony, ale zaczeło działać... mam co prawda spore obawy że może to nie być trwały efekt, ale puki co odpuszczam temat.
Dziękuję wszystkim za zaangarzowanie.
Go to the top of the page
+Quote Post
modern-web
post
Post #9





Grupa: Zarejestrowani
Postów: 763
Pomógł: 117
Dołączył: 15.03.2010
Skąd: void

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


Na Boga! Sesje przechowywane są na serwerze w katalogu tmp jeżeli nie ustawiłeś innego na stałe w pliku konfiguracyjnym php lub tymczasowo w głównym pliku aplikacji. Nie rozumiem po co poruszasz tutaj temat kompatybilności z różnymi `komputerami`. Zacznijmy od tego, że aplikacje napisane w PHP są tzw. server-side - ruszą bez specjalnych emulatorów jedynie na 2 systemach -> Unixach i Windowsach, a system z jakiego korzysta użytkownik nie ma znaczenia (chyba, że wprowadziłeś pewne ograniczenia na podstawie nagłówków HTTP). Różnice między systemami z punktu widzenia PHP są niewielkie - zróżnicowany zapas bibliotek (niektóre trzeba doinstalować) oraz inny sposób zapisu ścieżki do pliku. Rozumiem, że przykład, który tutaj zaprezentowałeś dotyczy logowania, a ja mogę Ci zagwarantować, że taki system uwierzytelniania (PHP) ruszy u każdego odwiedzającego, chyba, że pokombinujesz coś w warstwie prezentacji danych (HTML), a okaże się, że nie wszystkie przeglądarki wspierają daną technologię (mam tutaj na myśli jakieś Twoje urozmaicenia dla panelu).

P.S.
Jak teraz Ci to działa to jakim prawem ma przestać działać jeśli Ty niczego w niej nie zmienisz? Wbrew prawom informatyki smile.gif Nic nie dzieje się bez przyczyny.

Pozdrawiam.


--------------------
Pomogłem? Kliknij `Pomógł`. To nic nie kosztuje, a mnie usatysfakcjonuje! ;)
Go to the top of the page
+Quote Post
molek1
post
Post #10





Grupa: Zarejestrowani
Postów: 6
Pomógł: 0
Dołączył: 3.12.2010

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


Cytat(modern-web @ 13.09.2012, 14:41:56 ) *
Na Boga! Sesje przechowywane są na serwerze w katalogu tmp

Wiem to - w katalogu sesje się tworzą, ale nie zmienia to faktu że pod jednymi przeglądarkami funkcjonuje to prawidłowo, a pod innymi nie. Z nieznanych mi przyczyn zaczęło działać poprawnie... PHP co prawda działa na serwerze, ale nie zgodzę się z tym że przeglądarka jakiej się użyje nie ma wpływu na jego działanie - samo działanie sesji jet uzależnione od tego czy w przeglądarce działajuą cookie czy też nie.

Cytat(modern-web @ 13.09.2012, 14:41:56 ) *
Jak teraz Ci to działa to jakim prawem ma przestać działać jeśli Ty niczego w niej nie zmienisz? Wbrew prawom informatyki smile.gif Nic nie dzieje się bez przyczyny.

Kilkanaście lat temu, będąc na studiach pisałem w fortranie, c, pascalu itp. Zdażało się że coś co powinno działać, nie chciało ruszyć - kompilator fiksował... ten sam program kompilowany następnego dnia po prostu zadziałał, więc proszę Cię nie pisz że jak działa to nie przestanie.
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: 22.08.2025 - 06:18