Autor Zpráva
Kore
Profil *
Ahoj, jaké jsou možnosti, pokud se týče zabránění prohlížeči, navigovat stránku zpět? Prostě, aby uživatel nemohl kliknout na šipku, zkratku zpět, nemohl se navigovat na mém webu zpětně. Jak na to, pomocí JS nebo PHP? Děkuji.


..nebo ještě lépe...je možné to nastavit nějak přímo na hostingu v nějakém konfigu, aby při pokusu o krok zpět...server poslal chybu XXX..
RastyAmateur
Profil
Kore:
how to stop browser back button using javascript. Každopádně si myslím, že je to blbost.
Joker
Profil
Kore:
Stránka moc nemůže blokovat funkčnost prohlížeče, navíc to je vyloženě nežádoucí z pohledu toho uživatele.

Technicky by to asi šlo udělat tak, aby žádná předchozí stránka nebyla, tj. to celé udělat jako jednostránkovou aplikaci a místo přecházení stránek jen přepínat viditelnost bloků.

Samozřejmě, v závislosti na určení té stránky, to může mít hromadu nevýhod.
quatzael
Profil
Kore:
Určitě tento problém lze vyřešit pomocí $_SESSION. Aby jsi tam vychytal všechny možný nedostatky, musel bys tam zapojit AJAX.. A docela složitý by bylo vyřešit fungování za předpokladu, že bude mít uživatel stránku otevřenou na více tabech..
Tomášeek
Profil
quatzael:
Určitě tento problém lze vyřešit pomocí $_SESSION.
Eh? A jak?

musel bys tam zapojit AJAX
...

Plácáš nesmysly. Jak ovlivní SESSION nebo dokonce AJAX blokaci tlačítka zpět v prohlížeči?
quatzael
Profil
Tomášeek:
Zkus se víc zamyslet.. Říká ti něco proměnná $_SERVER?
Tomášeek
Profil
quatzael:
Říká ti něco proměnná $_SERVER?
Ano, říká.

Jak souvisí $_SESSION a $_SERVER? A co má být? Je v ní (v $_SERVER) snad možnost zablokovat tlačítko zpět v prohlížeči?
RastyAmateur
Profil
Tomášeek:
Hádám, že je tím myšleno něco v tom smyslu, že si do $_SESSION budeš trackovat svůj pohyb po stránkách a když zjistíš, že chce jít zpět, prostě mu to na úrovni PHP zakážeš. No, ... (-:

Jako nevím. Nejvíce se mi líbila asi odpověď [#3] od Jokera. Ale uzavřel bych to prostě tím, že nijak jednoduše to prostě nejde. Existují různé způsoby, jak to obejít a toto chování nasimulovat, ale prostě to není očekávané ani chtěné chování. Nedokážu si představit aplikaci, ve které bys to chtěl, lépe řečeno ve které by to bylo to správné či jediné řešení.
quatzael
Profil
RastyAmateur:
Přesně tak. Tlačítko zpět v prohlížeči nastavit na disabled prostě přes PHP ani JS nastavit nejde. Možná by to šlo nějak složitěji přes add-ons (pokud by se to směřovalo na stálé uživatele, kteří by si to byli ochotni sami nainstalovat), ale s tím nemám zkušenosti..

Myslím, že hlavně záleží na účelu, který to má plnit. Pokud jde jen o něco jako samostatný formulář na bázi několika kroků, tak myslím, že moje navrhované řešení je asi nejlepší. Když si dá člověk opravdu záležet, dá se to pomocí $_SESSION udělat tak, aby se na celém webu uživateli po kliknutí tlačítka zpět objevila chybová hláška XXX (případně opět načetla aktuální stránka..)

Kdyby to mělo fungovat komplexně na celý web, tak by bylo snažší to řešení od Jokera, nicméně se tím nedocílí toho, čeho Kore opravdu chce docílit:

..nebo ještě lépe...je možné to nastavit nějak přímo na hostingu v nějakém konfigu, aby při pokusu o krok zpět...server poslal chybu XXX..
Tomášeek
Profil
RastyAmateur:
Jak mu zákazu kliknout na tlačítko zpět? To v PHP nedeaktivuji.

quatzael:
Nejprve zmotas session a server proměnné. Tvářis se, jako ze zablokovat tlačítko zpět lze, abys vzápětí místo “důkazu” couvl, ze to vlastně nejde. Čili to, co jsme všichni tvrdili od začátku. No nic...
Bubák
Profil
RastyAmateur:
Nedokážu si představit aplikaci, ve které bys to chtěl, lépe řečeno ve které by to bylo to správné či jediné řešení.
V mnou používaném internetovém bankovnictví mne použití Zpět odhlásí.
RastyAmateur
Profil
Tomášeek:
Ne, to rozhodně ne. Ale když si budeš trackovat jeho pohyb a zjistíš, že šel zpět, můžeš mu poslat třeba 400 Bad request, nebo zobrazit nějakou error page s textem, že se nelze pohybovat na stránce zpět.

Bubák:
Ani zde si nemyslím, že by to bylo úplně správně. Ale jako ano, u bankovnictví to už trochu dává alespoň nějaký smysl.
quatzael
Profil
Tomášeek:
Nejprve zmotas session a server proměnné
Já nic nemotám. Nepochopil jsi to s tím $_SESSION, tak jsem ti chtěl napovědět ještě s tou proměnnou $_SERVER. Obě jsou totiž na toto potřeba.
Ale vypadá to, že to stejně pořád nechápeš..

Tvářis se, jako ze zablokovat tlačítko zpět lze, abys vzápětí místo ‘důkazu” couvl, ze to vlastně nejde.
Z ničeho necouvám, poukazoval jsem na možné řešení toho, čeho chtěl Kore dosáhnout.

Čili to, co jsme všichni tvrdili od začátku. No nic...
Ty jsi tady nic od začátku netvrdil.. Začal jsi rejpat, až po mém prvním příspěvku..
Joker
Profil
quatzael:
Na druhé straně, „Určitě tento problém lze vyřešit pomocí $_SESSION“ je taková dost záhadná odpověď, to by se dalo říct, na většinu otázek tady.

Ani si nejsem jistý, jak pomocí $_SESSION skutečně návštěvníkovi zabránit v navigaci zpět.
Napadá mě evidovat jeho historii na serveru a detekovat, že se snaží přejít na předchozí stránku.
Tam vidím trochu problém, že jednak navigace zpět nemusí vyvolat nový dotaz na server (i když to by se asi dalo vyřešit nastavením cache) a jednak že uživatel se nemusí nutně vrátit jen na poslední předchozí stránku, takže implementace nebude tak snadná.

Vaše odpověď


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm:

0