Avatar billede gonzzo Nybegynder
07. december 2000 - 22:09 Der 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!!
Avatar billede ramlev Nybegynder
07. december 2000 - 22:33 #1
eks 1:

[side1.php]
<?
session_start();
session_register(\"testvar\");

$testvar = \"1234567890\";
echo \"<a href=\\\"side2.php\\\">tryk her</a>\";
?>
[side2.php]
<?
session_start();
echo $testvar; /* skulle gerne udskrive : 1234567890 */
?>

eks 2.
<?
session_start();
$sessid = session_id();
echo $sessid;
?>

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();.

mindst 100 værd ..;o)
Avatar billede ramlev Nybegynder
07. december 2000 - 22:38 #2
Men Gonzzo, man lærer meget af at læse i manualen, du skulle tage og prøve... lærerigt.
Avatar billede mkelle1 Nybegynder
07. december 2000 - 22:43 #3
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);
}

Hilsen

Mads
Avatar billede jd Nybegynder
08. december 2000 - 15:32 #4
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!?
Avatar billede ramlev Nybegynder
08. december 2000 - 15:44 #5
jon@z, jeg giver blot lidt eksempler på hvordan sessions kan bruges, og ingen konkrete eks\'s.
så for mit vedkommende, NEJ... ;o)
Avatar billede jd Nybegynder
08. december 2000 - 15:52 #6
oki... jeg kan egentlig heller ikke se at du leger med hans database, men det gør mkelle1, hvilket jeg ikke kan se nogen grund til...
Avatar billede mkelle1 Nybegynder
08. december 2000 - 15:55 #7
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

Mads
Avatar billede ramlev Nybegynder
08. december 2000 - 15:56 #8
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.
Avatar billede ramlev Nybegynder
08. december 2000 - 15:58 #9
mkelle1, det var ikke et svar til dit, men til jd\'s
Avatar billede mkelle1 Nybegynder
08. december 2000 - 15:58 #10
Nogle gange bliver svarene blandet på en pudsig måde

Mads
Avatar billede ramlev Nybegynder
08. december 2000 - 15:59 #11
jups...;o) kan der faktisk komme ret meget sjov ud af...
Avatar billede jd Nybegynder
08. december 2000 - 16:03 #12
okay.. så er vi enige :)
Avatar billede gonzzo Nybegynder
08. december 2000 - 21:25 #13
hejsa!!

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!!
Avatar billede gonzzo Nybegynder
08. december 2000 - 22:03 #14
mkelle1 >>

Jeg har leget lidt med dit eks....

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 ??
Avatar billede jd Nybegynder
08. december 2000 - 22:12 #15
nej, du kan bare tilgå den pågældende brugers session-id med session_id(); (også på de andre sider) mener jeg...
Avatar billede mkelle1 Nybegynder
08. december 2000 - 23:09 #16
gonzzo>

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.

Mads
Avatar billede gonzzo Nybegynder
08. december 2000 - 23:22 #17
nevermind... det ser ud til at det fungere, men hva så trat som jeg er lige nu, kan alt for min skyld se ud til at fungere, selv om det ikke gør :-)))

så jeg tester det lige lidt mere grundigt i morgen....

hvad med tabellen er det ok med typpen af felt og længden på det ??
Avatar billede mkelle1 Nybegynder
08. december 2000 - 23:24 #18
Ja

Mads
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
Vi tilbyder markedets bedste kurser inden for webudvikling

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