07. december 2000 - 22:09Der er
16 kommentarer og 2 løsninger
session ??
Hejsa!!
Jeg er ved at lave en shop....
Indtil nu har jeg brugt $remote_addr som værende den \"bærende\" del, altså når folk skulle putte noget i deres indkøbskurv var deres ip gemt sammen med det i en database, når de så var færdig og skulle til kassen, bliver alle de vare der er under det ip nr. som de optræder på siden med hentet ud fra databasen, og efterfølgende sendt en mail til mig med bestillingen, og alt indhold som er placeret fra den besøgendes ip slette igen fra databasen.....
men men men jeg har nu selv oplevet problemer med at mig selv og et par af de test personer jeg bruger sider bag samme intranet, og derved får samme ip ude i verden... øv øv øv så faldt hele den bærende del ligesom til jorden..., så nu skal jeg have omskrevet det lidt inden jeg kan/vil lave mere på det....
Så jeg skal bruge nogle sesion eksempler...
OG IKKE SE MANUALEN............ det giver ingen point i denne sammenhæng, kun \"rå\" eksempler!!
et eks. på hvorledes at jeg \"starter\" en sesion... som systemet er nu bliver kundens ip først registreret i det øjeblik at han/hun putter noget i kurven...
så et elelr andet som går ind og tildeler den besøgende et unikt nummer og hvor det gemmes med i databasen når kunden trykker på \"køb\", dernæst skal jeg bruge et eks på hvorledes at jeg så får hentet de rigtige ting fra databasen når kunden er klar til at bestille...
et par eks. på dette ville være kanont....
vi starter med 60 point, og sætter det muligvist op hvis det er noget indviklet at lave og jeg evt. skal have hjælp til noget konkret vedr. dette!!
eks 3. når du skal hente de rigtige ting fra db\'en, så sammenligner du blot $sessid med den værdi der står i db\'en. alle de sider du bruger med sessions, hvor dataerne skal hentes fra de andre sider, starter du med session_start();.
Nå - nu kom jeg forsent, men du får den squ alligevel:
Her er lidt med sessions og også en antydning af køb. Kig på det.
<? //Skal være det aller-aller første du skriver på siden!!!!!!!! session_start();
//Hvis du har behov for at registere flere ting end sessionsnummeret om brugeren iløbet //af seancen, kan man oprette variable således. Senere kan de bare tildeles en værdi som //enhver anden PHP variabel, og den er gemt i sessionen og er dermed en global variabel der //gælder på alle de sider brugeren kommer ind på. Du kan oprette lige så mange du vil!
session_register(\"Bruger\");
?>
<html> <head> </head> <body> <? //En funktion der sender session_id med som en hidden værdi fra den ene side til den //næste. Dermed behøver du ikke at spekulerer på om kunden tillader cookies. //Det kræver selvfølgelig at du har en form på siden. function send_session_id() { $S=session_id(); echo \"<input type=\'hidden\' name=\'PHPSESSID\' value=\'$S\'>\"; } ?>
<!-- Her kommer så al din smarte kode der får nogen til at købe noget -->
<form name=\"xxx\" action=\"yyy\"> <?send_session_id();?> <!-- Her kommer der nogle parametre om den vare man vil købe --> <form input=submit name=\"buy\" value=\"KØB!\">
?>
</body> </html>
På den næste side skriver du så:
<? session_start();
if ($buy) { $sql=\"insert into din_tabel (varenr,antal,session_id) values ($varenr,$antal,$PHPSESSID)\"; mysql_query($sql); }
ramlev & mkell1-> Har jeg forstået jer ret når jeg siger at i vil gemme alt hvad brugeren putter i kurven, i databasen? Hvorfor ikke bare registrere en session med et array med alle id\'er på varerne i? Altså, gemme id på alle varerne man putter i kurven, og når man så går til kurven, hentes der info om varerne med de pågældende id\'er!?
Jon@z, problemet var formuleret således at det blev registreret i databasen når man trykkede på KØB - så derfor. Hvad man konkret skal gøre kommer i sidste ende an på hvordan hele systemet er bygget op, og hvilke krav man ellers stiller til det. Men du har ret, man kan sagtens gemme oplysningerne i en session
nææh faktisk ikke, for med sessions kan han definere det hele der, og hive alle informationerne med over til \"kassen\" via de sessions-definerede-variabler, så er der ikke brug for db\'en, til det hvertfald.
Når nu det HELE er færdigt.... og det eneste problem er at 2 der kommer fra samme firma og som er bag samme fierwall m.m.m.m.m.m. højst sansynligt har samme ip kan jeg ikke bruge det til \"unikt\" id og bad/beder derfor om hjælp til nogle session eksempler, hvor der krereres et unikt id til den pågældende bruger via sesion, så er det jo ikke ret meget der skal rettes i systemet førend det er oppe at køre med session validering istedet for ip!!
så nej jeg bygger det ikke om jeg jeg undgår db acces under selve indkøbet!!
Jeg vil prøve mig frem her i løbet af wekenden!!
Takker indtil vidre, og vender frykeligt tilbage!!
I min tabel har jeg oprettet følgende.. sessionid, varchar(50)
skal feltet være af en bestemt typpe & længde eller er det fint som jeg har gjordt indtil nu ??
og så har jeg øverest på den side som putter varen i kurven (databasen) skrevet... session_start(); $sesid=session_id();
og når jeg så gemmer i databasen.... mysql_query(\"INSERT INTO kurv (ip, dato, nummer, antal, dress, dress1, dress2, bem, sessionid) VALUES (\'$REMOTE_ADDR\', \'$tid\', \'$plus\', \'$antal\', \'$dressing\', \'$dressing1\', \'$dressing2\', \'$bem\', \'$sesid\')\");
men så har jeg nogle link på de pågældende sider, og dem tilføjer jeg vel bare... bla.php3?sessionid=$sesid for at få vidreført den pågældende sesion id, eller hva ??
Det jeg har foreslået handler om at man jo ikke kan være sikker på at alle besøgende tillader cookies og derfor sender jeg PHPSESSID med fra den ene side til den anden. Altså bruger den funktion Send_session_id() på hver eneste side i din form.Dette fordi grundlæggende regner alle session funktionerne med at der er sat en cookie og det kan man jo ikke være sikker på. Hvis du vil sende andre parametre med er det kun et spørgsmål om at de er med i den form som sendes videre.
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.