Wykrywanie jak użytkownik kliknie wstecz. JAK ?

w dziale Strony WWW w Operze
kamil2234 napisał(a):

Jak w operze wykryć , że użytkownik kliknął wstecz w przeglądarce. Nie wiem czemu ale opera przywołuje wszystko z pamięci cache. Nawet kod w js i identyfikatory sesji. Nie mam więc do czego się odnieść w kodzie aby stwierdzić czy użytkownik kliknął wstecz. Pod firefox i IE gdy cofnę się wstecz to mam już odczyt z identyfikatora z sesji i nadaną wartość . W operze jest to porąbane.

Zrobiłem tak:
na stronie 1 mam tak

<?
session_start();



$_SESSION['link'][0] = $_SERVER["REQUEST_URI"];

if($_SESSION['link'][1] != '')
{
echo 'zostało kliknięte wstecz';
}

?>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
<html>
<head>
<meta http-equiv="Content-type" content="text/html; charset=utf-8">
<meta http-equiv="Cache-Control" CONTENT="no-cache">
<meta http-equiv="Pragma" CONTENT="no-cache">
</head>
<body>


<SCRIPT LANGUAGE="javascript">
function rand (min, max) {
   
    var argc = arguments.length;
    if (argc === 0) {
        min = 0;
        max = 2147483647;
    } else if (argc === 1) {
        throw new Error('Warning: rand() expects exactly 2 parameters, 1 given');
    }
    return Math.floor(Math.random() * (max - min + 1)) + min;
	 }
	 
	var ile = rand(1 , 100);
 document.write(ile);
</SCRIPT>


<a href="http://www.xxxx.pl/xxxxx/testy/str2.php">link str2</a>
</body>
</html>
<? echo "<pre>";
 print_r($_POST);
 echo "</pre>
";
  echo "<pre>";
 print_r($_SERVER);
 echo "</pre>
";
  echo "COOKIES<pre>";
 print_r($_COOKIE);
 echo "</pre>
";
  echo "SESSION<pre>";
 print_r($_SESSION);
 echo "</pre>
";?>


Strona 2 do której kieruje linik:

<?
session_start();
$_SESSION['link'][1] = $_SERVER["REQUEST_URI"];
?>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
<html>
<head>
<meta http-equiv="Content-type" content="text/html; charset=utf-8">
<meta http-equiv="Cache-Control" CONTENT="no-cache">
<meta http-equiv="Pragma" CONTENT="no-cache">
</head>
<body>

</body>
</html>
<? echo "<pre>";
 print_r($_POST);
 echo "</pre>
";
  echo "<pre>";
 print_r($_SERVER);
 echo "</pre>
";
  echo "COOKIES<pre>";
 print_r($_COOKIE);
 echo "</pre>
";
  echo "SESSION<pre>";
 print_r($_SESSION);
 echo "</pre>
";?>



Ryszard napisał(a):

No bo to jest Opera. Tak tu jest że poprzednia strona ma się lądować natychmiast. W opisach jest, że takie strony po prostu siedzą w pamięci. Przegladarka ma być wygodna dla użytkownika a nie łebmastera wink
Co Cię to obchodzi czy wcisnalem wstecz?
A sprawdzenie z jakiego adresu wchodzę na stronę Ci nie wystarczy?

kamil2234 napisał(a):

A no nie wystarczy. Bo jak jak użytkownik porusza się po aplikacji i zmieni jakąś opcję w kolejnej stronie to chcę żeby , gdy kliknie wstecz o tym wiedział.

Przykładowo masz forum . Piszesz posta . Klikasz wstecz, a tam nie ma twojego posta w teamach. Musisz odświeżyć i dopiero wtedy widzisz, że napisałeś posta. Nie każdy o tym wie , że trzeba coś odświeżać. Ludzie wtedy główkują i nie wiedzą, i sądzą że posta nie ma na liście.

Albo , gdy wchodzisz w konfigurację aktywujesz kontrolkę chcecboxa i cofasz się . Znowu widzisz , że kontrolka jest nieaktywna mimo, że przed chwilą ją aktywowałeś. Znowu trzeba odświeżyć .

Po to wymyślono no cache , żeby takich jaj nie było. Jedak opera jak zwykle musi być do przodu i robić przed szereg po swojemu. Błąd twórców odbija się na ścianie klęsk tej przeglądarki i największych wtop moim zdaniem.

Teraz pytam jak problem ominąć .

MokrySedeS napisał(a):

JavaScript and History Navigation - Opera Knowledge Base

pgmost napisał(a):

Originally posted by kamil2234:

Przykładowo masz forum . Piszesz posta . Klikasz wstecz, a tam nie ma twojego posta w teamach. Musisz odświeżyć i dopiero wtedy widzisz, że napisałeś posta. Nie każdy o tym wie , że trzeba coś odświeżać. Ludzie wtedy główkują i nie wiedzą, i sądzą że posta nie ma na liście.


Można tak:

Możliwe jest ustawienie automatycznego odświeżania stron przy przejściu Wstecz, by zawartość poprzedniej strony była odświeżana. Dobre to jest w przypadku for internetowych. Oczywiście te ustawienie spowolni trochę nawigację Wstecz, ponieważ Opera będzie musiała sprawdzić zawartość strony , czy nie uległa zmianom. przy opera:config#Cache|CheckExpiryHistory ustawiamy wartość 0 dla opera:config#Cache|CheckExpiryLoad dajemy również wartość 0


za http://www.opera-fanklub.cba.pl/poradniki/optymopery.html

kamil2234 napisał(a):

kyrie elejson . Ale co ty mi proponujesz, żebym to ja sobie sam ustawił w opcjach opery ?

Jak piszę stronę , którą ogląda 200 użytkowników dziennie to co mam im kazać wyłączać cache jak wchodzą na moją stronę ? Zastanów się na przyszłość i nie pisz bzdur .

Co do JavaScript and History Navigation to nie mam zamiaru robić drzwi do lasu tworząc przyciski, skoro i tak można wcisnąć wstecz.

Pravus napisał(a):

Co kolega na to: http://www.w3.org/Protocols/rfc2616/rfc2616-sec13.html#sec13.13 ?

1. Nagłówek HTTP Cache-control: must-revalidate (po HTTPS działa, po HTTP?)
2. JavaScript - history.navigationMode = "compatible"; ( minęło sporo czasu i nie pamiętam co dokładnie się dzieje)

Ryszard napisał(a):

Originally posted by kamil2234:

Przykładowo masz forum . Piszesz posta . Klikasz wstecz, a tam nie ma twojego posta w teamach. Musisz odświeżyć i dopiero wtedy widzisz, że napisałeś posta. Nie każdy o tym wie , że trzeba coś odświeżać. Ludzie wtedy główkują i nie wiedzą, i sądzą że posta nie ma na liście.


A nie wydaje Ci, się że każdy użytkownik Opery wie, że to tak działa?
Przykładowo tu na tym forum - przeglądam przez http://my.opera.com/polski/forums/whatsnew.dml i wiem, że jak kliknę [Wstecz] to wątki które były nieprzeczytane dalej takie zostaną. Wiem, że dopiero po [F5] zobaczę aktualny stan nieprzeczytania.
No i taki drobiazg - jakby idea/zasada działania przeglądania na kartach była Ci zupełnie obca wink
Przykładowo - otwieram jakieś forum, ładuję na osobne karty wątki do przeczytania, a na kolejnej otwieram pisanie nowej wiadomości. Po napisaniu i wysłaniu nawet nie będzie jak kliknąć [wstecz] żeby zobaczyć, że na liście nie ma mojej wiadomości. A na karcie z listą wiadomości załadowaną na samym początku też jej nie będzie bo niby skąd? Miałoby mi wykrywać wysłanie nowej wiadomości i przeładowywać wszystkie[/i] karty ze stronami forum?
Tak w ogóle to np. na https://www.ipko.pl/ nie da się wcisnąć [wstecz] - wywala na stronę logowania. A tutaj https://poczta.interia.pl można. Czyli w Operze to się jakoś daje wykryć wink

kamil2234 napisał(a):

Co kolega na to: http://www.w3.org/Protocols/rfc2616/rfc2616-sec13.html#sec13.13 ?

1. Nagłówek HTTP Cache-control: must-revalidate (po HTTPS działa, po HTTP?)
2. JavaScript - history.navigationMode = "compatible"; ( minęło sporo czasu i nie pamiętam co dokładnie się dzieje)



Po https to wiem że nie cechuje i https w moim przypadku odpada. Robię aplikację więc raczej wątpię, że ktoś będzie chciał instalować certyfikaty ssl.


Dawałem różne hadery więc po http Opera je ignoruje.

A nie wydaje Ci, się że każdy użytkownik Opery wie, że to tak działa?
Przykładowo tu na tym forum - przeglądam przez http://my.opera.com/polski/forums/whatsnew.dml i wiem, że jak kliknę [Wstecz] to wątki
które były nieprzeczytane dalej takie zostaną. Wiem, że dopiero po [F5] zobaczę aktualny stan nieprzeczytania.
No i taki drobiazg - jakby idea/zasada działania przeglądania na kartach była Ci zupełnie obca
Przykładowo - otwieram jakieś forum, ładuję na osobne karty wątki do przeczytania, a na kolejnej otwieram pisanie nowej wiadomości. Po napisaniu i wysłaniu nawet nie będzie jak kliknąć [wstecz] żeby zobaczyć, że na liście nie ma mojej wiadomości. A na karcie z listą wiadomości załadowaną na samym początku też jej nie będzie bo niby skąd? Miałoby mi wykrywać wysłanie nowej wiadomości i przeładowywać wszystkie karty ze stronami forum?
Tak w ogóle to np. na https://www.ipko.pl/ nie da się wcisnąć [wstecz] - wywala na stronę logowania. A tutaj
https://poczta.interia.pl
można. Czyli w Operze to się jakoś daje wykryć
-----------



Co z tego jak są tacy co na pewno nie widzą i jest to zdecydowana większość. Ja wychodzę z założenia , że jak moja mama tego nie umie to reszta świata tym bardziej. Uwierz prowadzę firmę It i moi pracownicy jeżdżą konfigurować ludziom nk.pl i ustawić zdjęcia do profilu bo ludzie tego nie potrafią. Nie każdy jest tak mądry jak ty.

Są nawet ludzie po studniach co nie widzą co to jest forum - miałem takich praktykantów po polonistyce. Po za tym jak coś ma być funkcjonalne to powinno działać jak należy. Nie będę robił wyjątków dla Opery. Rozwiązanie na to być musi . Nigdy nie miałe potrzeby tego robić bo zawsze dawałem przekierowanie headerem po każdym zmienianiu opcji. No ale teraz od kilku lat ajax i jquery weszły więc czasy się zmieniły. Cechowanie powinno być wtedy gdy webmaster o tym decyduje, a nie przeglądarka. Oczywiście w obrębie danego serwisu może to się dynamicznie zmieniać i powinno w zależności od potrzeb. A tu Opera robi taki bubel. Ech


daroc napisał(a):

Originally posted by kamil2234:

Cechowanie powinno być wtedy gdy webmaster o tym decyduje, a nie przeglądarka.


Mam nadzieję że nie nie dożyję tych czasów. wink
Może jeszcze webmaster ma decydować jaką przeglądarką będę odwiedzał strony i gdzie ten cache będzie trzymany na dysku?
Co do używania przycisku wstecz - klikasz go po to żeby zobaczyć to co było przed chwilą, a nie coś nowego. Sądzę że więcej użytkowników chciałoby żeby po kliknięciu wstecz dodany przed chwilą na forum post magicznie się usunął, a nie żeby za pomocą "wstecz" cofać stronę i widzieć jakieś wprowadzone zmiany.
Każdy używa takiej przeglądarki jak lubi, i musi się liczyć z takim a nie innym jej działaniem. Używam Opery właśnie dlatego, bo jej zachowanie bardziej mi odpowiada, i nie chcę żeby upodabniała się do innych przeglądarek. Tak więc po prostu nie kombinuj, tylko wyświetlaj stronę, a przeglądarkę zostaw w spokoju.

Ryszard napisał(a):

Czy Twoja mama albo taki przykładowy tuma(polo)nista umie pobrać i zainstalować program?

kamil2234 napisał(a):

Mam nadzieję że nie nie dożyję tych czasów.



No to po coś wymyślono tagi no cache? Są sytuacje gdzie porostu przeglądarka nie powinna pokazywać treści po kliknięciu wstecz . Może być tak , że się wylogujesz , a ktoś inny po tobie kliknie wstecz i zobaczy co oglądałeś np. dane do których nie chwiałbyś, żeby inni mieli dostęp .


Ryszard napisał(a):

Originally posted by kamil2234:

Może być tak , że się wylogujesz , a ktoś inny po tobie kliknie wstecz i zobaczy co oglądałeś np. dane do których nie chwiałbyś, żeby inni mieli dostęp


Albo-albo.
Albo wiem czego używam i wtedy:
- mam możliwość spokojnie zobaczyć co też takiego robiłem w stanie zalogowania;
- pamiętam o zamknięciu karty na której byłem zalogowany (zresztą przecież to była prywatna karta i sam jej uchwyt sugeruje - zamknij po wylogowaniu).
Albo kapcie i gazeta.
Przykładowany już https://www.ipko.pl/ zamyka kartę po wylogowaniu.

Łukash napisał(a):

Originally posted by kamil2234:

Mam nadzieję że nie nie dożyję tych czasów.



No to po coś wymyślono tagi no cache? Są sytuacje gdzie porostu przeglądarka nie powinna pokazywać treści po kliknięciu wstecz . Może być tak , że się wylogujesz , a ktoś inny po tobie kliknie wstecz i zobaczy co oglądałeś np. dane do których nie chwiałbyś, żeby inni mieli dostęp .



[prawie]Przykładem jest poczta gmail ,która po wylogowaniu z drugiej karty ze strony google ,pozwala na przeglądanie otrzymanych wiadomości. Zraportowane ,nie poprawione ,nie dali ani 1$ bigsmile

draconair napisał(a):

Originally posted by kamil2234:

W operze jest to porąbane.


Zgłoś problem przez "bug wizarda" lub na angielskim forum.

MokrySedeS napisał(a):

Originally posted by kamil2234:

Co do JavaScript and History Navigation to nie mam zamiaru robić drzwi do lasu tworząc przyciski, skoro i tak można wcisnąć wstecz.


Jakie przyciski?
Nie jestem webmasterem, więc może źle to interpretuję, ale z tego co przeczytałem wynika, że wystarczy dodać do strony jedną linijkę JavaScript'u (coś takiego jak podał kolega Pravus w punkcie drugim swojego posta) i będzie ona automatycznie wymuszać na operze pożądany tryb nawigacji left

Ryszard napisał(a):

Originally posted by MokrySedeS:

Jakie przyciski?


Przy okazji przycisków. Czy pamiętacie, że ktokolwiek dopominał się o przycisk
Wstecz z przytupem