Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Sesja nie dziala u 3% uzytkownikow strony (Captcha)
barts
post
Post #1





Grupa: Zarejestrowani
Postów: 13
Pomógł: 0
Dołączył: 8.07.2005

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


Witam,

mam nastepujacy problem: generuje sobie w pliku token.php obrazek:

  1. <?php
  2. $_SESSION['token']= 'text';
  3. // nizej generujemy obrazek
  4. ?>


i w formularzu dodawania:

<img src="token.php">

W przypadku ok. 97% uzytkownikow wyswietla sie obrazek z kodem i ten sam kod maja w sesji.
U 3% obrazek sie wyswietla ale kod nie jest przekazywany do sesji.

Dlaczego tak sie dzieje? Testowalem na konkretnej osobie i zrobilem strone token.php a w niej tylko session_start(); + $_SESSION['token']= 'text';, i druga strona gdzie jest <img src="token.php"> i nizej echo $_SESSION['text'];.
I tekst z pliku token.php nie chce sie zapamietac w sesji, jak wpisze w przegladarce w adresie bezposrednio token.php to sesje zapisuje, a przez <img src="token.php"> nie. Tak sie dzieje tylku u kilku % wszystkich uzytkownikow. Wszyscy uzywaja Windowsa i IE lub Firefoxa.

Czy ktos sie spotkal z takim bledem? Ew. porady dotyczace rozwiazania? Mysle nad tym zeby zamiast <img src="token.php"> wrzucac jakis skrypcik javascript ktory ma wpisane <img src="token.php"> - tak zeby oszukac te oporne przegladarki.
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
nevt
post
Post #2





Grupa: Przyjaciele php.pl
Postów: 1 595
Pomógł: 282
Dołączył: 24.09.2007
Skąd: Reda, Pomorskie.

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


coś chyba pokręciłeś w opisie problemu... gdyby było tak jak napisałeś, to nie ma prawa w ogóle działać...
tak zrozumiałem twój opis:

1. masz plik token.php - który:
a ) ustawia zmienną sesji 'token' o wartości 'text'
b ) generuje obrazek z 'text' i zwraca jego kod...

2. masz inny plik, przypuśćmy strona.php, w którym
a ) jako źródła znacznika <IMG> podajesz plik token.php
b ) w dalszej części kodu odwołujesz się do zmiennej sesji 'token' i usiłujesz ją wyświetlić...

a teraz pomyśl przez chwilę, jak działa skrypt strona.php...

1. przeglądarka wywołuje twoją stronkę - w reakcji odpalany jest skrypt strona.php
2. serwer pobiera zmienne sesji - oczywiście w tym momencie zmienna 'token' jest pusta, więc jej wyświetlanie nie ma sensu...
3. przeglądarka dostaje kod HTML wygenerowany przez strona.php
4. wykonując ten kod napotyka znacznik <IMG> i wywołuje skrypt token.php
5. skrypt token.php generuje obrazek i ustawia zmienną sesji 'token'
6. ale przeglądarka dostała swój kod HTML PRZED wywołaniem tego skryptu... więc wartość zmiennej sesji 'token' ma szansę pokazać się dopiero po przeładowaniu / odświeżeniu strony... kiedy ponowanie wywołany zostanie skrypt 'strona.php'

WNIOSEK - może po prostu te 97% userów, po pierwszej nieudanej próbie logowania, odświeża stronkę i wtedy im wszystko działa - więc uznają że to był przypadek ...

Oczywiście możliwe, że to działa inaczej niż ja przedstawiłem - ale to by znaczyło, że twój opis problemu jest błędny lub niekompletny...

Ten post edytował nevt 17.01.2008, 12:54:15
Go to the top of the page
+Quote Post

Posty w temacie


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

 



RSS Aktualny czas: 8.10.2025 - 01:49