| Autor | Zpráva | ||
|---|---|---|---|
| Charlie Profil |
#1 · Zasláno: 29. 5. 2005, 16:02:41
Potřebuji zakázat klikání na tlačítko "Zpět", jak to mám udělat? Zkusil jsem tohle:
window.onback = zakaz(); Tento kód ale spouští funkci zakaz() vždy, při reloadu, při odeslání formuláře, i při kliknutí na tlačítko "Zpět". Celé se mi to nezdá jako ideální řešení, spíš bych bral něco jako tohle: window.onback = return false; Nic méně Javascript vůbec neumím, takže to nejsem schopen vyřešit sám. Díky. |
||
| Boldrik Profil |
#2 · Zasláno: 29. 5. 2005, 17:31:45
No tak si vypnu javascript. v praxi klikani zpet proste nezabranis
|
||
| Charlie Profil |
#3 · Zasláno: 29. 5. 2005, 17:36:36
Jo, mam proti tomu ochranu v PHP kódu, ale dejme tomu že si tou ochranou nejsem moc jistý. Můj systém je velmi složitý a tato ochrana Javyscriptem by se mi opravdu hodila.
Navíc, lidé, kteří budou prohlížet mé stránky budou převážně z řad dospělých doktorů, kteří ani nemají ponětí, co to Javascript je. |
||
| Fred Profil |
#4 · Zasláno: 29. 5. 2005, 17:42:31
Charlie Myslím, že pokud se použije na onload té stránky location.replace('taStejnaStranka') , historie se ztratí, ale nebyl bych tedy rád jako uživatel.
|
||
| Charlie Profil |
#5 · Zasláno: 29. 5. 2005, 18:11:44
Fred, no, tak jdu s pravdou ven.
Dělám on-line kurzy. Člověk si zaplatí kurz a hodí ho to na soubor kurz.php. Tady se mu zobrazí uvítací stránka kurzu. Poté je fáze, kde uživatel prochází skrz jednotlivé kapitoly a řeší testy, podle kterých se určuje úspěšnost kurzu. A kdyby se uživatel, který právě špatně udělal test mohl vrátit zpět, úplně by to postrádalo smysl. Na úvodní stránku můžu napsat: Neklikejte na "Zpět", ale protože je to komerční záležitost, budou chtít uživatelé dosáhnout co nejlepších výsledků a to je donutí podvádět. Jak jsem již říkal, mám to asi ošéfované přes PHP, ale vzhledem k tomu, že se POST odesílá pořád na jeden soubor, nemůžu zaručit, že bude vše fungovat. Celý průběh kurzu zapisuji do databáze, podle které kontroliji, zda je uživatel tam, kde má být, nebo ne. A to je důvod, proč to potřebuju. Nejsem žádný webdesignerský prase, snažím se jen udělat co nejlepší aplikaci. |
||
| Fred Profil |
#6 · Zasláno: 29. 5. 2005, 18:14:15
Hm, tak jsem to zkoušel a replacnutá stránka se smaže z historie.
Tedy stránka 1 se jménem prejdi-na-no-history.htm kód : <a href="no-history.htm">bez historie</a> stránka 2 se jménem no-history.htm kód : <script type="text/javascript"> function init(){document.location.replace('bez-historie.htm')}//přesměruje na stránku bez-historie.htm window.onload=init </script> stránka 3 se jménem bez-historie.htm tlačítko zpět ji vrátí na první stránku a vynechává v historii stránku 2 |
||
| Fred Profil |
#7 · Zasláno: 29. 5. 2005, 18:19:25
Charlie Aha jsi mě předběhnul, zkus si to co jsem napsal výše, plyne z toho, že by jsi potřeboval nějaké mezistránky, které by nebyly v historii. Nevyznám se v php, ale mám pocit, že by šlo v hlavičce posílat nějaký meta refresh pokud je nežádoucí referer. Tedy, aby pokud je referer ona stránka , aby se to refresnulo pomocí meta zpátky. viz http://www.siteexperts.com/tips/functions/ts14/page1.asp
|
||
| Charlie Profil |
#8 · Zasláno: 29. 5. 2005, 18:51:08
Fred, tvoje řešení je elegantní, ale obávám se, že ho nemohu použít. Asi by mi to zabilo všechny mé POST proměnné. Ale moc díky!
|
||
| Aleš Janda Profil * |
#9 · Zasláno: 31. 5. 2005, 15:50:49
A co si v databázi pamatovat, jestli se ten test už vyhodnotil nebo ne?
Podruhé už by to nešlo.. |
||
| Yuhů Profil |
#10 · Zasláno: 31. 5. 2005, 19:10:58
To, co navrhuje Aleš, je standardní postup.
|
||
| printf Profil |
#11 · Zasláno: 31. 5. 2005, 19:19:10
navíc pokud člověk otevře stránku v novém okně (panelu), tak ani tlačítko "zpět" nepotřebuje.
|
||
|
Časová prodleva: 21 let
|
|||
Toto téma je uzamčeno. Odpověď nelze zaslat.
0