![]() |
![]() |
![]() ![]()
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:
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. |
|
|
![]() |
![]()
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 |
|
|
![]() ![]() |
![]() |
Aktualny czas: 8.10.2025 - 01:49 |