Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [JavaScript][PHP]Jak wykryć , że ktoś kliknął wstecz w przeglądarce ?
Forum PHP.pl > Forum > Przedszkole
fiasko
Jak wykryć , że ktoś kliknął wstecz w przeglądarce ?

Ulysess
hmm jedyne co przychodzi mnie do głowy to :
if($_SESSION['link'][0] == $_SESSION['link'][1])
{
echo 'zostało kliknięte wstecz"
}

i na samym dole strony dajesz

$_SESSION['link'][0] = $_SESSION['link'][1];
$_SESSION['link'][1] = 'aktualny link';


oczywiście nie jest to super rozwiązanie ale zawsze coś
fiasko
Zrobiłem tak :

strona 1
  1.  
  2.  
  3. $_SESSION['link'][0] = $_SERVER["REQUEST_URI"];
  4.  
  5. if($_SESSION['link'][1] != '')
  6. {
  7. echo 'zostało kliknięte wstecz';
  8. }



oraz strona 2

  1. <?
  2.  
  3.  
  4.  
  5. $_SESSION['link'][1] = $_SERVER["REQUEST_URI"];
  6.  
  7.  
  8.  
  9. ?>


W stronach mam też takie meta tagi :

  1. <meta http-equiv="Content-type" content="text/html; charset=utf-8">
  2. <meta http-equiv="Cache-Control" CONTENT="no-cache">
  3. <meta http-equiv="Pragma" CONTENT="no-cache">
  4. </head>


Pod operą mi to nie działa.
Pod Firefox działa.
Pod IE działa.
#luq
Da się zasymulować: http://frontend.pl/2010/06/jak-przechwycic...w-javascripcie/
fiasko
Cytat


Ta metoda jest do niczego moim zdaniem.

No a jak w bankach np. ipko to zrobili ?


Wie ktoś jak z operą załatwić sprawę ?

wookieb
Proszę nie podbijać tematu.
fiasko
Nie wiem i wy chyba tez nie wiecie. Przejrzałem wszystkie fora i nic nie działa. Jak klikam wstecz to Opera pokazuje mi historię z cache.

Wiem , że na pewno można to zrobić bo w IPKO gdy klikam wstecz kieruje mnie do strony logowania. Ja też chcę tak zrobić. Jak ktoś kliknie wstecz to chcę mu dać przekierowanie. Ale nie mogę bo nie jestem w stanie tego wykryć. Skoro nawet Opera działanie js pobierana z cache to jak to mam wykryć ?


Zrobiłem sobie :

<!-- losuje sobie liczbę w js żeby stwierdzić czy gdy kliknięte wstecz to liczba wylosuje się znowu czy też zostanie pobrana z pamięci cache opery-->
[JAVASCRIPT] pobierz, plaintext
  1.  
  2. <script LANGUAGE="javascript">
  3. function rand (min, max) {
  4.  
  5. var argc = arguments.length;
  6. if (argc === 0) {
  7. min = 0;
  8. max = 2147483647;
  9. } else if (argc === 1) {
  10. throw new Error('Warning: rand() expects exactly 2 parameters, 1 given');
  11. }
  12. return Math.floor(Math.random() * (max - min + 1)) + min;
  13. }
  14.  
  15. var ile = rand(1 , 100);
  16. document.write(ile);
  17. </SCRIPT>
[JAVASCRIPT] pobierz, plaintext


Oczywiście wartość rand pobiera się z cache w operze.

Daję header jak kotoś radził:

  1. $extime = $lmtime = gmdate('D, d M Y H:i:s', time()) . ' GMT';
  2. header('Last Modified: ' . $lmtime);
  3. header('Expires: ' . $extime);
  4. header('ETag: ' . md5($extime));
  5. header('Cache-control: no-store,no-cache,must-revalidate');


Nic nie działa . Wszystko jest pobierane z dysku.

Nie wiem . Może jakoś przy unload zdarzenie dać ? Albo jakoś adres w historii podmienić do , którego się wraca gdy kliknę wstecz.

HELP

Rde czy na forum nikt z was tego nie robił ?
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.