31. juli 2005 - 19:00Der er
55 kommentarer og 1 løsning
hvordan og smartest "Cookie"
Jeg har et site der skal laves lidt om, og i den forbindelse skal der være en mindre web-shop, har lavet en version via Access database, men den funker ikke helt som jeg vil have det.
Mit ? er hvad der er den nemmeste og smarteste løsning til mit lille projekt. (Laves i DW)
når man klikker på en vare, som bliver trukket ud af en access database, skal den gemme ID på den vare der bliver trykket på, samt kundenr, som de har fået da de registreret sig..
Et andet sted skal den hente ID, og via ID hente resten af info fra databasen.
Sikkert meget simpelt, men det driller for meget til at det er løkkedes.
Så jeg håber på lidt guides.
Det må gerne være sådan at den kan gemme flere forskellige vare i samme Cookie, som så først bliver slettet når der er gennemført et køb. Det kunne være via en False/True funktion der bliver aktiveret ved gennemført køb.
Jeg er nød til at tage det i etaper, så jeg forstår hvad jeg laver.
Nu vil jeg så gerne have den der hedder Response.Cookies("KundeId") = "KundeId" til at hente den værdi som altså kundeNr har.. feks 00320 Jeg henter den data ud fra et recordset, men hvordan får jeg sat det ind i cookien.
Igen det er et site lavet i DW, så jeg skal hele tiden vide hvad jeg laver.
1) Response.Cookies sender en cookie to brugeren. 2) Request.Cookies henter en cookie fra brugeren
Problemet er her at du har modtaget din Request.Cookies i det øjeblik at kunden klikker sig ind på din side. Dette sker før at du sender den nye cookie via Response.Cookies.
Menningen er at kundeNr og produktID skal med ind i cookien Til at starte med vil jeg teste med KundeNr.
Når en bruger er logget ind, henter jeg normalt hans kundeNr frem. i en Hidden Field. Derefter kan det så sættes med ind i en Database, men i det her tilfælde vil jeg have det i cookien, for så senere at ligge det der er købt med kundeNr og ProduktID ind i min database.. Kan godt være jeg gør det helt forkert, skal jo heller ikke lave det svære end det er.
Men jeg er nød til at lære hvad jeg gør, så jeg også senere ved det.
Og så må jeg finde den måde der passer bedst til mig.
Normalt når jeg sætter det ind i en database, bruger jeg et Hidden Fiel med <%=(Kunder.Fields.Item("Kundenr").Value)%> den sætter så kundeNr ind i databasen
Ved jo ikke hvordan jeg kæder de ting sammen, eller om jeg er nød til at lave det helt anderledes.
Hmm... Jeg roder vist for meget rundt, til at jeg selv ved hvad jeg laver.
Jeg er klar over at <% Response.Cookies("KundeNr") = Kunder.Fields.Item("Kundenr").Value %> skal stå før <html>.
Men den laver stadigvæk ikke nogen cookie.
Troede ikke det var så svært at sætte cookies, med de variabler fra et database udtræk.
Det er sådan at jeg har alle mine kunder i en tabel der hedder kunder selve ID nummer er lavet om til kundenr, så hver kunde der opretter sig får sit eget kunde nummer.
Ud over det har jeg en Tabel som hedder Produkt1, hvor de fleste vare ligger i. Der er så bla. en kolonne som hedder IdNr, som bliver brugt til at hver vare har et unikt IDnr. Feks. V16, så det er nemmere for mig at vide hvad det er der er solgt.
de vare der kommer frem, via et udtræk i et recordset, er de vare som folk så kan klikke på og putte i kurven, men den del har du nok forstået.
Det vigtigeste for mig må så være at når man klikker, så kommer VareID feks. V16 samt kundeNr ned i en cookie.
Og så en side, hvor de kan se og eventuelt slette vare fra cookie.
Men det er måske den forkerte måde at gøre det på.?
Næ, Jeg har sat mit cookie katalog til at vise efter dato og tid, men der kommer ikke noget...
Testede med det her og det virker <%@LANGUAGE="VBSCRIPT" CODEPAGE="1252"%> <% Response.Cookies("HTMLTest")("tekst") = "Denne tekst ligger i en cookie!" strTekst = Request.Cookies("HTMLTest")("tekst") Response.Write "<p>" & strTekst %> <html> <head> <title>Cookie test</title> </head> <body> <h1>Cookie test</h1> </body> </html>
Men kan godt nok ikke finde cookien på Pc´en, Lidt underligt.
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html><meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"> <title>Untitled Document</title> <head> <body>
</head>
<% If Not varer.EOF Or Not varer.BOF Then %> <p><%=(varer.Fields.Item("vare_id").Value)%> <%=(varer.Fields.Item("vare_navn").Value)%></p> <% End If ' end Not varer.EOF Or NOT varer.BOF %>
' Skriv dem til klienten Response.Write "<p>Hej " & strNavn %>
</p> </body> </html> <% varer.Close() Set varer = Nothing %>
Ved godt du ikke har databasen, men det er også bare en simpel test side og database.
Men i linien <% Response.Cookies("vare") ("aakk") = varer.Fields.Item("vare_id").Value%>; Ville den altså have det sådan her ("vare") ("aakk") før det virkede.
Nu vil jeg lige teste det på den originale side, og så kommer jeg nok med nogle ?
ja, det kunne jeg forstå, men så virkede det pludselig.
I den originale, virker den ikke Error Type: ADODB.Field (0x800A0BCD) Either BOF or EOF is True, or the current record has been deleted. Requested operation requires a current record.
Det vil sige at det gør den med denne kode Response.Cookies("KundeNr") = Kunder.Fields.Item("Kundenr").Value
Men når jeg bruger denne kode samtidigt Response.Cookies("KundeNr") = Produkt1.Fields.Item("id").Value Vil den ikke, da mit records set er sat til at sortere via ID Altså Filter "ID" = URL Parameter = "ID"
Nu har jeg så sat de 2 her ind også Response.Cookies("Indkøbskurv")("VareNr") = Produkt1.Fields.Item("idnr").Value Response.Cookies("Indkøbskurv")("VareAntal") = 1
Men skal der bare stå 1 til sidst i Response.Cookies("Indkøbskurv")("VareAntal") = 1
Jeg tænkte på om jeg skulle starte en ny tråd, så du kan få lidt points for det du har hjulpet med.
Ok, havde lige lidt pc problemmer, fandt lige en backup af det jeg havde sidst, som jeg kan lege med.
Problemmet jeg havde da jeg afprøvet det, var at jeg ikke kunne finde ud af at ligge flere vare ind i samme cookie. Den opretter bare den nye info.
Det sjove er at jeg heller ikke kan finde selve cookien, men den skriver da trods alt info ind et eller andet sted, for den viser det fint, når jeg ? efter det.
Når jeg trykker på en vare jeg gerne vil have, skal den som sådan kun ligge 1 ind pr vare man vælger, og så senere eventuelt ændre dette i indkøbs kurven.
det salg der er, er så småt at det som real kun er 1stk pr vare folk køber. Jeg vil i første omgang have den til at vise hvor mange vare der er i kurven. Men den skriver kun den jeg sidst har trykket på.
Meningen er vel egentlig bare at jeg skal have lavet det sådan at når folk går til selve indkøbskurven for at afslutte handlen, så henter jeg de data der ligger i cookien og gemmer dem i min database.
Derfra kan jeg så sende mail med info osv.. men dertil er jeg ikke kommet i nu.
I sidste ende skal jeg starte forfra på en anden site, og gøre det ordenligt her, for at lære noget mere, så jeg ikke laver alle de her fejl hvergang jeg skal lave noget lignende. For jeg kan godt se at den måde jeg gør det på nu, med at opdatere en side der er lavet i forvejen uden cookie, ikke er det smateste, da det hurtigt bliver rodet og uoverskueligt, men jeg lære da at kende forskel på de forskellige ting.. hehe
Det er jeg med på, men problemmet er at folk går rundt på flere sider, og tilføjer.
Så jeg ved ikke hvordan jeg sætter den op til at håndtere det.
Måske du bare skulle få points for det du har hjulpet med (hvilken har været til stor hjælp), og så kunne jeg starte en ny tråd, hvor vi starter forfra, med en helt ny side, så jeg lære det ordenligt.
Så venter jeg med at lave videre på den her side til jeg har lært nok til det. for jeg tror jeg skal have en bedre forståelse på det jeg laver før jeg bygger det ind i den side jeg har nu.
Du får hele tiden Cookien med, så det skulle ikke være noget problem.
Spørgsmålet er om du egentlig ikke burde bruge Session i stedet for en Cookie? En Cookie er egentlig mere beregnet til at gemme oplysninger i mellem forskellige besøg af den samme kunde. Session er derimod mere eregnet på den slags ting som indkøbskurve. Bortset for dette så er der ikke de store forskelle på Cookies og Sessions.
Jeg syens at du skal lave dig en demo-shop hvor du afprøver Session og Cookies og så ellers ikke bekymre dig om meget andet (som f.eks. at få det til at se pænt ud). Når du så begynder at beherske teknologien så kan du sætte den ind i dit rigtige site.
Ok... Jeg tror jeg vil lege med Sessions så, for det er jo ligesom lidt nemmere, når det er integreret i DW, Men giv lige et svar, så du kan få dine points.
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.