Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Obrazek wczytywany z pliku PHP i różne reakcje na różnych przeglądarkach
Michael2318
post
Post #1





Grupa: Zarejestrowani
Postów: 651
Pomógł: 116
Dołączył: 3.06.2012
Skąd: Lędziny

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


Wczytuję z pliku .php obrazek, jednak zanim on się wczyta to do bazy danych mają lecieć dwa zapytania no i na mozilli ładnie lecą, ale kiedy odpaliłem exploerera to zaczęły się dziać dziwne kwiatki. Standardowo, jeśli wczytujemy jakiś plik jako obraz:

Kod
<img src="http://link.pl/obraz.gif" border="0">


To ten obraz jest wczytywany (odświeżany) równocześnie z każdym odświeżeniem przeglądarki użytkownika. Innymi słowy, jeśli dany obrazek występuje na podstronie a, b, c, d to jeśli user będzie tak między nimi latał - za każdym razem obrazek powinien na nowo się wczytać. I tak się dzieje na mozilli, jednak na explore'rze o dziwo - zapytania do bazy się nie wykonują co dla mnie jest nieracjonalne, szczególnie że najpierw zdefiniowane są zapytania (bez poprzedzonych żadnych warunków!), dopiero później sam kod obrazka.

Początek kodu wygląda tak:

  1. $tokens = '345679acdefghjkmnprstuwy';
  2. $key = '';
  3. for ($i=0; $i<5; $i++)
  4. {
  5. $key .= $tokens[rand()%(strlen($tokens))];
  6. }
  7.  
  8. $sql = "DELETE FROM `tabela`
  9. WHERE timestamp < '" . (CR_TIME - 3600) . "'
  10. OR session_id = '" . $userdata['session_id'] . "'";
  11. if ( !$result = $db->sql_query($sql) )
  12. {
  13. }
  14.  
  15. $sql = "INSERT INTO `tabelka`
  16. VALUES ('" . $userdata['session_id'] . "', '" . $key . "', '" . time(). "')";
  17. if ( !$result = $db->sql_query($sql) )
  18. {
  19. }
  20.  
  21. $gen_reg_key = $key;
  22. header('Content-Type: image/png');


Jak widać na samym początku lecą dwa zapytania do bazy, potem dopiero w ogóle otwieram nagłówek png. Jak to wytłumaczyć, że z poziomu explorera te zapytania się nie wykonują, a z poziomu mozilli ładnie działają? ;/ Czy z powodu jednej przeglądarki, te zapytania będę musiał umieszczać w XX miejscach w plikach bo explorer jakoś to dziwnei interpretuje? ;/


EDIT:

Dodanie tego:

  1. header("Cache-Control: no-cache, must-revalidate");


Niby załatwiło sprawę, ale kolejny błąd jaki odkryłem to fakt, że jeśli jesteśmy na stronie A, przechodzimy na podstrone B i wracamy (back) z powrotem na stronę A to obrazek się nie odświeża, czyli chyba trzymany jest w cache przeglądarki. Czy powyższy zapis nie mówi o tym, że obrazek ma być wczytywany cały czas na nowo?

Ten post edytował Michael2318 28.12.2012, 00:31:35
Go to the top of the page
+Quote Post

Posty w temacie


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: 20.08.2025 - 00:52