Avatar billede it-dyret Nybegynder
03. oktober 2003 - 15:54 Der er 9 kommentarer og
1 løsning

Deaktivering af "Back"

Jeg har et problem i forbindelse med opbygningen af et site, hvor jeg har brug for, at man ikke kan kalde back-funktionen i browseren (eller noget lignende, der gør det samme). Det er en form som submittes, som den åbenbart godt kan submite igen. Jeg har har sat EXPIRE NO_STORE i headeren.
Avatar billede skovenborg Nybegynder
03. oktober 2003 - 16:48 #1
Du kan ikke forhindre brugeren i at bruge tilbage knappen eller at gå til den forrige side. Så må du indrette din form efter det i stedet for.
Avatar billede roenving Novice
03. oktober 2003 - 20:53 #2
Du kan billedlig talt sætte 'Indkørsel forbudt'-skilte op, men det vil jo aldrig forhindre brugeren i at køre ind alligevel ...

-- hvis du submitter formen kan du give den et id og et tidsstempel, som du checker serverside, så den ikke accepterer den mere end een gang !-)
Avatar billede olebole Juniormester
08. oktober 2003 - 08:14 #3
<ole>

Nej, back-knappen kan du heldigvis ikke komme til at fumle rundt med. Den er jo brugerens ejendom ... ikke din  ;o)

Du kan bare redirekte siden. I PHP ville det se noget lignende ud:

<?

  $bla = $_POST["en_variabel"];
  # Gør noget med $bla her

  Header( "Location: siden.php?updated=true" );

?>

Hvor 'siden.php' er siden selv.

/mvh
</bole>
Avatar billede it-dyret Nybegynder
08. oktober 2003 - 09:04 #4
Har fundet en server-side løsning på problemet. Hvis folket smider et svar hver, vil pointene blive ligelidt fordelt...
Avatar billede olebole Juniormester
08. oktober 2003 - 09:16 #5
Hvad var løsningen?
Avatar billede it-dyret Nybegynder
10. oktober 2003 - 10:52 #6
Det samme som roenving beskrev - altså et serverside check på baggrund af et id og et tidsstempel...

Olebole er desværre den eneste, som har leveret andet end en kommentar, så han får pointene!
Avatar billede olebole Juniormester
10. oktober 2003 - 16:28 #7
På E plejer man at bede brugere, der kun har kommenteret (men med en brugbar løsning) om at svare, så vedkommende kan tildeles points. Normalt ville jeg i et sådan tilfælde oprette et nyt spm. og overdrage pointene til roenving. Det bliver dog ikke idag, da det forslag, jeg kom med, er standarden for, hvordan dette løses - og sparer dig for check og evt. DB-opslag  :)
Et lille eksempel:

<?

if ( isset($_POST["act"]) && $_POST["act"]=="tester" ) {
        // Udfør din kode her
    Header( "Location: ".$_SERVER["PHP_SELF"]."?navn=".$_POST["navn"] );
}

?>
<html>
<body>

<form action="<?=$_SERVER["PHP_SELF"]?>" method="post">
<input type="hidden" name="act" value="tester">
<input type="text" name="navn">
<button type="submit">TEST</button>
</form>

</body>
</html>

Jeg redirect'er til siden selv - med den medsendte post-variabel som argument i URL'en. Det kunne være, hvad somhelst (f.eks. 'updated=true' eller 'darrvs=du'), men jeg har bare brugt navnet for at vise, scriptet faktisk har haft fat i variablen, før der blev redirect'et.

Fidusen er, at 'side.php' ikke opfattes som samme side som 'side.php?noget=bla'. Derfor submittes formen ikke ved reload.
Det _er_ zq da nemt ... ikk'?  :)

Siden, du læser lige nu, løser problemet lidt anderledes. Der postes formen til 'response.php'. Her foretages DB-indsættelsen, hvorefter der redirect'es tilbage til denne side.
Spm'ets id (409272) sendes med i formen (i et hidden-field), så der kan redirectes til den rigtige side.
/mvh
Avatar billede it-dyret Nybegynder
10. oktober 2003 - 23:17 #8
Takker for eksemplet olebole!

Min kommentar af 08/10-2003 09:04:12 var et forsøg på at få roenving til at smide et svar... men nu har du under alle omstændigheder gjort dig fortjent til pointene!
Avatar billede olebole Juniormester
10. oktober 2003 - 23:41 #9
Jamen, så takker jeg behørigt for points - og formoder (med mit rimelig gode kendskab til ham), at roenving ikke bliver fornærmet, men kan se det fikse i den løsning, vi fandt frem til  ;o)
/mvh
Avatar billede roenving Novice
12. oktober 2003 - 14:14 #10
-- slet ikke fornærmet !-)

-- for som det fremgår har jeg ikke haft så meget tid på det seneste til at følge med i trådene !o]
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester