PHP og "tilbage-knappen"

Tags:    php

<< < 12 > >>
Uha: den her bliver lang, så hav lidt tålmodighed ;o)

I stort set hele denne weekend har jeg Googlet Nettet tyndt for at finde en måde til at styre de "events" som der f.eks. er direkte adgang til via JavaScript.

NB: Jeg bruger kun PHP til mine sider! Aktive klient-scripts kan slåes fra. Derfor!

Alt hvad jeg roder med skal være kort, præcist og simpelt. Derfor går jeg langt udenom laaaange koder der fylder flere sider, så det tager 100 år at scrolle til bunden ;o)

Og derfor finder jeg små stumper ( tror jeg mange gør ) som jeg tilpasser mit behov - eller laver hele koden selv om nødvendigt.

Ok! Jeg har en form, hvor valideringskoden ligger i andet lag dvs. "action" er en side2.php hvor det hele styres. ( Et af de første råd man støder på p.g.a. sikkerhed er at bruge 2 sider, minimum. )

Der er dog visse ulemper: valideringen foregår ikke løbende p.g.a ovenstående forklaring. Det er først når brugeren trykker "confirm" at felterne i formen valideres, og derfor er man på side2.php når man fx. får fejlmeldingen "Du har ikke udfyldt dit efternavn".

Og derfor er det også nødvendigt at vende tilbage til formen på side1.php, så brugeren kan skrive færdig.

Jeg synes, det er klodset programmering, hvis man skal bede brugeren om enten at trykke på en ny form-knap eller på browserens "tilbage-knap" for at vende tilbage til side1.php.

Og mit problem er: Bruger jeg "Header" eller "Meta", så SLETTES de data som brugeren allerede HAR indtastet ( fordi siden loades fra scratch ), og som bruger er det jo pisse irriterende.

I JavaScript hedder koden hhv: history.go(-1); og history.back(); og øøh, de virker for det meste i Firefox, men sommetider sker der altså ikke en skid, hvis koden lægges som en automatiseret handling. Derimod virker "button" i <input>-tag'et fint; men den er bare så fff grim ;o)

HTTP-REFERER alene eller i kombination med $_SERVER virker ikke for mig, og andre siger, at de heller ikke er til at regne med.

Så hvad gør jeg ??


Mvh. Per.




Indlæg senest redigeret d. 30.06.2008 00:37 af Bruger #13907
12 svar postet i denne tråd vises herunder
2 indlæg har modtaget i alt 6 karma
Sorter efter stemmer Sorter efter dato
Jeg ville bygge det op således:

Fold kodeboks ind/udKode 


På den måde har du mulighed for at validerer, komme med en fejl besked og du undgår at brugeren skal taste forfra.

* Som GNU siger det, så er det ikke mere sikkert at have to filer, så længe man laver en sikker kode.



Indlæg senest redigeret d. 30.06.2008 00:57 af Bruger #11914
en alm. formpost er sat op på flg måde.

Fold kodeboks ind/udPHP kode 




Indlæg senest redigeret d. 30.06.2008 13:10 af Bruger #10216
1. Som du har erfaret er det ikke muligt at sende værdier frem og tilbage, uden at sende dem via. URLen. Så den bedste er at videresende klienten tilbage til side1 med et eller andet fejl id. Også må du droppe brugerens input.

2. Det er ikke mere sikkert at benytte to forskellige sider til forms frem for en enkelt. Det mest sikre er at checke alt input hvor brugeren kan have haft indflydelse.



Jeg kan jo prøve med validering på samme side som formen med action PHP_SELF.

- så finder jeg ud af, om den også sletter data med den metode ;o)


1. Som du har erfaret er det ikke muligt at sende værdier frem og tilbage, uden at sende dem via. URLen. Så den bedste er at videresende klienten tilbage til side1 med et eller andet fejl id. Også må du droppe brugerens input.

2. Det er ikke mere sikkert at benytte to forskellige sider til forms frem for en enkelt. Det mest sikre er at checke alt input hvor brugeren kan have haft indflydelse.




PHP_SELF er ikke nødvendig, du skriver bare action="".



Ja, det er noget i den retning jeg kan ændre det til. Så ser vi, om det virker ;o)

Jeg ville bygge det op således:

Fold kodeboks ind/udKode 


På den måde har du mulighed for at validerer, komme med en fejl besked og du undgår at brugeren skal taste forfra.

* Som GNU siger det, så er det ikke mere sikkert at have to filer, så længe man laver en sikker kode.




Hehe, ja det så jeg lige ;o)


PHP_SELF er ikke nødvendig, du skriver bare action="".




Med sikker kode mener du vel "captcha" ??

- er det dumt at undlade den ??

På den måde har du mulighed for at validerer, komme med en fejl besked og du undgår at brugeren skal taste forfra.

* Som GNU siger det, så er det ikke mere sikkert at have to filer, så længe man laver en sikker kode.




Nej nej, jeg skrev bare captcha for at have et eksempel på et felt :) Det er kun en ekstra sikkerhed du kan lave på dit site hvis du bliver angrebet af spam.



Ok. Nu har jeg flyttet koden fra side2.php til side1.php og hvad ser jeg:

Den SLETTER data hver gang man får en fejlmeddelelse. Har du skrevet fornavn men glemt efternavn, så kommer fejlteksten som den skal, men så slettes fornavnet.

DOH!!!

Det er altså ikke til at leve med ;o)

Så hvad nu ??

Jeg ville bygge det op således:

På den måde har du mulighed for at validerer, komme med en fejl besked og du undgår at brugeren skal taste forfra.

* Som GNU siger det, så er det ikke mere sikkert at have to filer, så længe man laver en sikker kode.




<< < 12 > >>
t