Gør så client ikke kan refresh site

Tags:    php

Jeg har en webshop. Og i den webshop sender den mail. Det jeg ikke vil ha er at efter man har enterd et sikkerhedskode som viser man ikke er bot and den gør så ens client ikke kan refresh. Ellers kan folk bare trykke F5 hele tiden og spamme ikke bare vores system men vores mail box / deres.

Håber en her inde har en løsning :-)


Tak på forhånd!



Det kan du ikke forhindre folk i. Det du kan gøre er at sætte et timestamp i deres session, og så sammenligne det med det timestamp de har når de opdaterer siden, og så afvise dem/lade være at gøre noget, hvis der er gået under fx 1 minut.



Du kan også bare sende klienten til en anden side (redirecte), når mailen er sendt, f.eks en "Din mail er sendt"-side, så vil de bare refreshe den side hver gang og der vil derved ikke kunne spammes.



Du kan også bare sende klienten til en anden side (redirecte), når mailen er sendt, f.eks en "Din mail er sendt"-side, så vil de bare refreshe den side hver gang og der vil derved ikke kunne spammes.

Hvis han gør det med et header-redirect vil post-dataene blive sendt igen ved et refresh alligevel. Hvis han gør det med et meta refresh eller et javascript redirect vil et tryk på Tilbage gøre det istedet.



Du kan også bare sende klienten til en anden side (redirecte), når mailen er sendt, f.eks en "Din mail er sendt"-side, så vil de bare refreshe den side hver gang og der vil derved ikke kunne spammes.

Hvis han gør det med et header-redirect vil post-dataene blive sendt igen ved et refresh alligevel. Hvis han gør det med et meta refresh eller et javascript redirect vil et tryk på Tilbage gøre det istedet.


Hmm.. Den havde jeg ikke lige tænkt over.:S



Tilføj et flag til ordren i databasen eller sessionen.

Hvis (ordre.allerede_sendt_mail==false)
{ sendmail() }
ellers
{ ordre.allerede_sendt_mail=true}



Tilføj et flag til ordren i databasen eller sessionen.

Hvis (ordre.allerede_sendt_mail==false)
{ sendmail() }
ellers
{ ordre.allerede_sendt_mail=true}


takker mange MANGE gange :-D



t