Avatar billede mecenor Nybegynder
04. august 2005 - 20:33 Der er 10 kommentarer og
1 løsning

Gavekort må kun bruges én gang

I indkøbsvognen indtastes en gavekortkode og et tjeknummer. Gavekortets værdi trækkes fra det samlede beløb og gavekortet sættes til 'brugt' i databasen, så det ikke kan bruges igen.
Men hvis man efter at have indløst gavekortet, åbner en ny side med indkøbsvognen (fx ctrl+n i IE) så kan man bruge samme gavekort igen og igen (på separate ordre).
Hvordan undgår man dette?
Avatar billede krydset Nybegynder
04. august 2005 - 20:42 #1
i databsen (tabellen)kan du lave et felt som hedder eks. used hvor den så sætter eks brugt = 1 ubrugt = 0...

Så kan du jo lave et tjek på hvad værdien er og så vil det kun kunne blive brugt en gang
Avatar billede mecenor Nybegynder
04. august 2005 - 20:48 #2
Det er det jeg gør med "og gavekortet sættes til 'brugt' i databasen". Eller brugt = true, om du vil. Problemet er at man kan åbne en 'kopi' af indkøbssiden med gavekort-rabatten...
Avatar billede busschou Praktikant
04. august 2005 - 21:36 #3
hvis man kan det så er det jo fordi du ikke tjekker op imod din database hver gang rabatten skal udregnes
Har du først sat den "brugt" så vil den jo blive fanget næste gang du slår op i databasen?
Avatar billede busschou Praktikant
04. august 2005 - 21:37 #4
du må lave et felt til gavekort koden, og en knap til at godkende koden
Ved klik på knappen postes siden til serveren som tjekker om koden er ok eller om den er brugt. Så er problemet væk
Avatar billede mecenor Nybegynder
04. august 2005 - 22:53 #5
Hvis koden er blevet brugt, i.e. indtastet en gang, så kan den ikke bruges igen: sæt til 'brugt' og tjek på 'brugt' i db fungerer fint.
Hvis koden ikke er blevet brugt før, så trækkes gavekortværdien fra et beløb(og koden sættes til brugt i db). Alt er fint. Men hvis man vælger 'nyt vindue' i browserens fil-menu, så viser det nye browservindue præcist den samme side - med gavekortbeløbet trukket fra. Det er jo samme session.
Avatar billede busschou Praktikant
05. august 2005 - 07:07 #6
Ja men når man klikker ok for at bestille så tjekker du vel om kortet er brugt?
Så kan det altså kun gøres een gang
Avatar billede busschou Praktikant
05. august 2005 - 07:10 #7
jeg vidste ikke at IE kunne gøre det med at åbne et vindue sådan, men firefox gør jo præcis det samme, og der er der altså ingen problemer ved sådan at tjekke op mod en database
Om du så klikker ok præsic samtidig i begge vinduer, så vil den ene gå ind i databasen før den anden da databasen altid vil sætte forespørgsler til samme record i kø
Derved vil den ene få adgang til at bestille, og den anden vil ikke
Hvis altså du laver tjekket
Avatar billede mecenor Nybegynder
05. august 2005 - 20:01 #8
Jeg tror problemet ligger i sekvensen.
Det var meningen, at man skulle kunne indløse gavekortet og se det trukket fra i indkøbskurven og så checke varerne ud eller fortsætte med at handle. Men jeg kan ikke se hvordan man kommer udenom at der kan åbnes et nyt vindue, der også har det indløste gavekort trukket fra: et tjek på om gavekortet er brugt vil i begge vinduer (original som nyt) vise at det er brugt. Så vidt jeg kan se, så er der ikke noget der adskiller de 2 vinduer - samme bruger, session, gavekortkode. Eller hvad?

Hvis man nu ændre stedet for indtastning og tjek af gavekort til sidste trin i indkøbsprocessen, så kommer det til at forgå sammen med kreditkort tjek (ordren gennemføres) og der kan ikke åbnes et nyt vindue.
Avatar billede mecenor Nybegynder
05. august 2005 - 20:53 #9
Tak for hjælpen busschou, smid et svar.
Avatar billede busschou Praktikant
06. august 2005 - 01:59 #10
ok håber du har fået det til at virke? :o)
Avatar billede mecenor Nybegynder
06. august 2005 - 08:32 #11
Jeg lægger som nævnt tjek af gavekort på sidste trin i indkøbsprocessen.
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
Kurser inden for grundlæggende programmering

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