/ Forside / Teknologi / Udvikling / PHP / Nyhedsindlæg
Login
Glemt dit kodeord?
Brugernavn

Kodeord


Reklame
Top 10 brugere
PHP
#NavnPoint
rfh 3959
natmaden 3372
poul_from 3310
funbreak 2700
stone47 2230
Jin2k 1960
Angband 1743
Bjerner 1249
refi 1185
10  Interkril.. 1146
Dobbelt bestilling
Fra : Harald


Dato : 01-02-07 11:00

Hej

Kunder bestiller varer og går ind i indkøbskurven.
De udfylder navn og adresse og trykker på bestil knappen.
Jeg kalder derefter unset($_SESSION['minKurv']); for at tømme kurven, men
alligevel kan de trykke på tilbage i deres browser, få de bestilte varer
frem og bestille dem igen og derved lave en "dobbet" bestilling af de samme
varer, hvordan forhindre jeg dette?

/HK



 
 
Bertel Lund Hansen (01-02-2007)
Kommentar
Fra : Bertel Lund Hansen


Dato : 01-02-07 11:17

Harald skrev:

> Jeg kalder derefter unset($_SESSION['minKurv']); for at tømme kurven, men
> alligevel kan de trykke på tilbage i deres browser, få de bestilte varer
> frem og bestille dem igen og derved lave en "dobbet" bestilling af de samme
> varer, hvordan forhindre jeg dette?

Jeg er ikke sikker på at det reelt kan forhindres.

Du kan tjekke på om to ordrer er identiske, med det kunne
teoretisk godt være at kunden bestilte i to omgange.

På én hjemmeside var jeg ude for at bestille to gange
(klamphuggersiden virkede ikke rigtigt i Opera). Kort efter fik
jeg en mail med en besked om dobbeltbestillingen og en forklaring
på hvordan jeg let kunne annulere den ene (eller begge) ordrer.

--
Bertel
http://bertel.lundhansen.dk/      http://fiduso.dk/

Martin (01-02-2007)
Kommentar
Fra : Martin


Dato : 01-02-07 11:18

Harald wrote:
> Hej
>
> Kunder bestiller varer og går ind i indkøbskurven.
> De udfylder navn og adresse og trykker på bestil knappen.
> Jeg kalder derefter unset($_SESSION['minKurv']); for at tømme kurven, men
> alligevel kan de trykke på tilbage i deres browser, få de bestilte varer
> frem og bestille dem igen og derved lave en "dobbet" bestilling af de samme
> varer, hvordan forhindre jeg dette?

Kører din bestilling også via noget database?
I databasen kan du så sætte et "ordrer_sent" = 1 når ordren er bestilt,
og hvis ordrer_sent = 1 - så kan man ikke få "kurven" frem igen

Harald (01-02-2007)
Kommentar
Fra : Harald


Dato : 01-02-07 16:39

"Martin" <maaNO@SPAMscandesigns.dk> skrev i en meddelelse
news:45c1be58$0$49208$14726298@news.sunsite.dk...
> Harald wrote:
>> Hej
>>
>> Kunder bestiller varer og går ind i indkøbskurven.
>> De udfylder navn og adresse og trykker på bestil knappen.
>> Jeg kalder derefter unset($_SESSION['minKurv']); for at tømme kurven, men
>> alligevel kan de trykke på tilbage i deres browser, få de bestilte varer
>> frem og bestille dem igen og derved lave en "dobbet" bestilling af de
>> samme varer, hvordan forhindre jeg dette?
>
> Kører din bestilling også via noget database?
> I databasen kan du så sætte et "ordrer_sent" = 1 når ordren er bestilt, og
> hvis ordrer_sent = 1 - så kan man ikke få "kurven" frem igen

Alle bestillinger bliver smidt ind i $_SESSION['minKurv']); og når navn og
adresse så udfyles og der trykkes på SEND så gemmes ordren i en MySQL base,
men jeg vil gerne forhindre at de kan få kurven med indhold frem igen, hvis
der trykkes tilbage i browseren skal der helst stå at "Kurven er tom"
ligesom der normalt står når kunden ikke har puttet noget i kurven.

/HK



Arne Feldborg (02-02-2007)
Kommentar
Fra : Arne Feldborg


Dato : 02-02-07 02:01

"Harald" <nomail@noname.dk> skrev Thu, 1 Feb 2007 16:39:24 +0100


>Alle bestillinger bliver smidt ind i $_SESSION['minKurv']); og når navn og
>adresse så udfyles og der trykkes på SEND så gemmes ordren i en MySQL base,
>men jeg vil gerne forhindre at de kan få kurven med indhold frem igen, hvis
>der trykkes tilbage i browseren skal der helst stå at "Kurven er tom"
>
Det vil du næppe umiddelbart kunne opnå. Når der trykkes tilbage i
browseren ser brugeren jo faktisk det foregående billede, som ligger
cachen, og der er bestillingen jo netop ikke afsendt.

Kunne det være en udvej, at bruge javaascript til at nulstille
history(), så der simplethen ikke var nogen "forrige side".?

--
mvh, A:\Feldborg

Slægtsforskning og lokalhistorie i midt- vestjylland
http://hammerum-herred.dk/

Harald (02-02-2007)
Kommentar
Fra : Harald


Dato : 02-02-07 08:09

"Arne Feldborg" <feldborg@haunstrup.dk> skrev i en meddelelse
news:kr25s2l601d6mpvgs8d9i8rtdd5es1rueh@4ax.com...
> "Harald" <nomail@noname.dk> skrev Thu, 1 Feb 2007 16:39:24 +0100
>
>
>>Alle bestillinger bliver smidt ind i $_SESSION['minKurv']); og når navn og
>>adresse så udfyles og der trykkes på SEND så gemmes ordren i en MySQL
>>base,
>>men jeg vil gerne forhindre at de kan få kurven med indhold frem igen,
>>hvis
>>der trykkes tilbage i browseren skal der helst stå at "Kurven er tom"
>>
> Det vil du næppe umiddelbart kunne opnå. Når der trykkes tilbage i
> browseren ser brugeren jo faktisk det foregående billede, som ligger
> cachen, og der er bestillingen jo netop ikke afsendt.
>
> Kunne det være en udvej, at bruge javaascript til at nulstille
> history(), så der simplethen ikke var nogen "forrige side".?

Jeg mener nu at jeg har engang har prøvet det selv på nogle sider hvor jeg
så fik at vide at siden jeg prøvede at komme tilbage til var forældet og det
derfor ikke kunne lade sig gøre, men lige hvilken side det var kan jeg ikke
huske.

/HK



Martin (02-02-2007)
Kommentar
Fra : Martin


Dato : 02-02-07 15:31

Harald wrote:
> Alle bestillinger bliver smidt ind i $_SESSION['minKurv']); og når navn og
> adresse så udfyles og der trykkes på SEND så gemmes ordren i en MySQL base,
> men jeg vil gerne forhindre at de kan få kurven med indhold frem igen, hvis
> der trykkes tilbage i browseren skal der helst stå at "Kurven er tom"
> ligesom der normalt står når kunden ikke har puttet noget i kurven.

Start med at have en variabel i din session med et unikt id dette kunne
fx. laves med

uniqid(md5(rand()), true);

denne streng putter du så i en session og den følger så minKurv hele
tiden - når så det hele bliver sat ind i databasen så sætter du også
dette unikke id ind i databasen sammen med kurven.

Så sætter du et nyt ID med samme streng.
Så kan disse 2 aldrig komme til at se ens ud.

Søg
Reklame
Statistik
Spørgsmål : 177501
Tips : 31968
Nyheder : 719565
Indlæg : 6408522
Brugere : 218887

Månedens bedste
Årets bedste
Sidste års bedste