Avatar billede bx Nybegynder
30. oktober 2007 - 15:35 Der er 26 kommentarer og
1 løsning

Sessions på flere domæner

Når en besøgende går fra www.mitdomæne.dk/index.php til www.sikkerserver.dk/betaling.php så forsvinder den besøgendes session.

Jeg har brugt noget kode så sessions bliver gemt i min MySQL database ( http://www.zend.com/zend/spotlight/code-gallery-wade8.php?article=code-gallery-wade8&kind=sl&id=3133&open=1&anc=0&view=1 ). Jeg kan få min session med ved hjælp af GET når kunden trykker på et link som kalder www.sikkerserver.dk/betaling.php

men den besøgende kan jo skrive www.sikkerserver.dk/betaling.php og så kommer GET ikke med. Så den besøgendes session igen glemt.

Nogen ideer?
Avatar billede jakobdo Ekspert
30. oktober 2007 - 15:44 #1
Har du ikke i din form, et input felt, som indeholder navnet på den side som skal åbnes når betaling er gennemført?
Måske du kunne tilføje SESSION_ID() der?
Avatar billede bx Nybegynder
30. oktober 2007 - 15:58 #2
Det her skal ske før betalingen.

Man går f.eks. fra produktsiden til betalingssiden som ligger på et andet domæne. Derefter er det jo nemt nok da jeg helt kan styre hvor den besøgende lander.

Sagt på en anden måde.

1. Jeg går ind på http://www.mitdomæne.dk/produkt.php og lægger det i kurven.
2. Jeg klikker på linket "Betal" som sender mig videre til https://www.sikkerserver/betaling.php

Det er fordi betalingssiden skal være SSL beskyttet.
Avatar billede bx Nybegynder
30. oktober 2007 - 16:00 #3
Da SSL serveren ikke skal belastes unødigt (det er en relay server som ejes af en betalings gateway udbyder) skal kun betalingssiden kører henover SSL serveren.
Avatar billede jakobdo Ekspert
30. oktober 2007 - 16:06 #4
Men kan du ikke styrer til hvilken side en bruger smides til efter en betaling?
Avatar billede jakobdo Ekspert
30. oktober 2007 - 16:10 #5
Og ellers vil session vel også være gemt på din hoved side..?
Avatar billede leif Seniormester
30. oktober 2007 - 16:10 #6
De fleste gateways tilbyder at redirecte til en OK side efter betaling er gennemført.

Hvad gateway snakker vi om og er dit system selvudviklet ?
Avatar billede bx Nybegynder
30. oktober 2007 - 16:10 #7
Jo. Men som sagt det har intet med den del at gøre. Det er FØR. Kunden skal lande på betalingssiden som ligger på https://www.sikkerserver/betaling.php og siden skal så huske den session der var på http://www.mitdomæne.dk/produkt.php
Avatar billede bx Nybegynder
30. oktober 2007 - 16:11 #8
Jeg er ved at lave en webshop og bruger epay.dk
Avatar billede bx Nybegynder
30. oktober 2007 - 16:13 #9
Grunden er at hængelåsen nede i status linien skal være der.

Ellers kunne jeg bare sende data direkte til epay.dk og så vil alt være godt.
Avatar billede jakobdo Ekspert
30. oktober 2007 - 16:18 #10
En session huskes selvom der hoppes fra side til side.

Test her: http://www.codebreaker.dk/exp/803515exp.php

Efter du ender her på spørgsmålet igen, så hop til siden: http://www.codebreaker.dk/exp/803515exp.php igen.
Avatar billede bx Nybegynder
30. oktober 2007 - 17:15 #11
Det er tilsyneladende ikke tilfældet når man bruger epay.dk relay server.

F.eks er man på http://www.mitdomæne.dk/index.php og klikker hen på <a href="https://relay.ditonlinebetalingssystem.dk/relay/relay.cgi/www.mitdomæne.dk/betaling.php">Betaling</a>

Oprettes der en ny session. Jeg kan se det fordi jeg bruger en database til at gemme mine sessions.
Avatar billede jakobdo Ekspert
30. oktober 2007 - 17:37 #12
Epay.dk burde ikke kunne ødelægge en session på din server.
Og du har session_start(); i toppen af dine sider?
Avatar billede bx Nybegynder
30. oktober 2007 - 17:40 #13
Ja. Det fungerer når jeg bare ikke bruge relay server.

Føler jeg banker hovedet mod muren *suk*
Avatar billede jakobdo Ekspert
30. oktober 2007 - 17:43 #14
Hvad laver relay serveren?
Kan du ikke sende session_id med?
Avatar billede bx Nybegynder
30. oktober 2007 - 17:46 #15
Det er ikke fordi den gamle session bliver slettet. Systemet tror bare at den skal oprette en ny.

hvis jeg laver dette link med en GET på PHPSESSID kan den godt huske det for betaling.php men det er så også alt. Hvis man går et andet sted hen skre der et eller andet som gør det forsvinder.

Eksempel:

https://relay.ditonlinebetalingssystem.dk/relay/relay.cgi/www.mitdomæne.dk/betaling.php?PHPSESSID=her -er-et-langt-sessionid
Avatar billede bx Nybegynder
30. oktober 2007 - 17:47 #16
Så skal det sendes med på hvert link væk derfra f.eks. navigationsbaren.
Avatar billede jakobdo Ekspert
30. oktober 2007 - 17:47 #17
Jeg faldt over denne: http://www.epay.dk/support/faq.asp?faqKat=7
Klik på: Vores session huskes ikke, når vi benytter jeres relay-script ?
Avatar billede bx Nybegynder
30. oktober 2007 - 17:52 #18
Jeg har lavet et eksempel der ligner dit så du kan se hvad der sker på: http://snooky.free-web-hosting.biz/
Avatar billede jakobdo Ekspert
30. oktober 2007 - 17:53 #19
Avatar billede bx Nybegynder
30. oktober 2007 - 17:54 #20
Jep. Har læst den tilsyneladende er det et almindeligt problem at man ikke kan sende sessions mellem to domæner.

Hvorfor dit eksempel virker er måske fordi du kun kører http. Jeg kører jo https://
Avatar billede bx Nybegynder
30. oktober 2007 - 17:54 #21
..og http://
Avatar billede jakobdo Ekspert
30. oktober 2007 - 18:05 #22
Og du har prøvet:
PHP      <input type="hidden" name="HTTP_COOKIE" value="<?=getenv("HTTP_COOKIE");?>">
Avatar billede bx Nybegynder
30. oktober 2007 - 18:16 #23
Ja. Jeg har prøvet alle deres eksempler. Det bedste resultat jeg har fået er med GET med PHPSESSID på hvert link på betaling.php. Problemet er at det er noget L... hvis alle mine links skal have en session id i linket. Dårligt for google m.m.
Avatar billede jakobdo Ekspert
30. oktober 2007 - 18:21 #24
Men du skal jo alligevel tilgå betalingssiden.dk fra en form, så mit indlæg fra 18:05:00 er jo løsningen.
Du skal jo ikke tilgå siden fra et link, men fra en form, det er jo sådan hele betalingssiden.dk er tiltænkt.
Avatar billede bx Nybegynder
01. november 2007 - 17:20 #25
Jeg kan se jeg må re-designe min måde at gøre det hele på. Tak for hjælpen selvom det ikke helt var det svar jeg ledte efter :). Smid lige et svar så du kan få point.
Avatar billede jakobdo Ekspert
01. november 2007 - 17:23 #26
Svar!
Avatar billede jakobdo Ekspert
01. november 2007 - 20:52 #27
Takker for point.
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