/ Forside / Teknologi / Udvikling / PHP / Nyhedsindlæg
Login
Glemt dit kodeord?
Brugernavn

Kodeord


Reklame
Top 10 brugere
PHP
#NavnPoint
rfh 3959
natmaden 3372
poul_from 3310
funbreak 2700
stone47 2230
Jin2k 1960
Angband 1743
Bjerner 1249
refi 1185
10  Interkril.. 1146
Session
Fra : Lasse Hedegaard


Dato : 15-09-03 23:21

Heps!

Jeg er ved at udvikle et nyt ordre/betalings-system, og bruger
sessions undervejs.

Når der betales med Dankort, så submittes en form til en URL på en
anden server end simlock.dk - og herfra "hiver" scripts fra denne
server filer ind fra simlock.dk - men det er altså den anden server
der står i adresselinien.

Jeg har problemer med at få session-data brugt her - hvad gør jeg?

<?php print_r ($_SESSION); ?> giver blot "Array()" som output.

Venligst,
Lasse Hedegaard

--
http://www.simlock.dk/
- også Siemens M55, S55, C55 samt SonyEricsson T610

 
 
Lasse B. Jensen (15-09-2003)
Kommentar
Fra : Lasse B. Jensen


Dato : 15-09-03 23:30

prøv med en

<?php

phpinfo();

?>

så får du al information der overhovedet kan fremskaffes.

/Lasse
"Lasse Hedegaard" <laxxe@nospam.dk> skrev i en meddelelse
news:bmecmv80kfpr3k34fhlk5nc53fa1d9gakb@news.tele.dk...
> Heps!
>
> Jeg er ved at udvikle et nyt ordre/betalings-system, og bruger
> sessions undervejs.
>
> Når der betales med Dankort, så submittes en form til en URL på en
> anden server end simlock.dk - og herfra "hiver" scripts fra denne
> server filer ind fra simlock.dk - men det er altså den anden server
> der står i adresselinien.
>
> Jeg har problemer med at få session-data brugt her - hvad gør jeg?
>
> <?php print_r ($_SESSION); ?> giver blot "Array()" som output.
>
> Venligst,
> Lasse Hedegaard
>
> --
> http://www.simlock.dk/
> - også Siemens M55, S55, C55 samt SonyEricsson T610



Jimmy (15-09-2003)
Kommentar
Fra : Jimmy


Dato : 15-09-03 23:31


"Lasse Hedegaard" <laxxe@nospam.dk> wrote in message
news:bmecmv80kfpr3k34fhlk5nc53fa1d9gakb@news.tele.dk...
> Heps!
>
> Jeg er ved at udvikle et nyt ordre/betalings-system, og bruger
> sessions undervejs.
>
> Når der betales med Dankort, så submittes en form til en URL på en
> anden server end simlock.dk - og herfra "hiver" scripts fra denne
> server filer ind fra simlock.dk - men det er altså den anden server
> der står i adresselinien.
>
> Jeg har problemer med at få session-data brugt her - hvad gør jeg?

Sessions fungerer ikke på tværs af servere.
Sessions er blot en cookie på din harddisk med et ID, som matches mod en
tilsvarende på serveren, hvor selve indholdet er lagret.

Forsøger du at hente din værdi på en anden server vil det fejle, da din
lokale cookie ikke svarer til den nye servers domænenavn.

I det hele taget er sessions ikke smarte at anvende ved betalingssystemer,
da brugere kan slå cookies fra.

Alternativt kan man anvende sessions i querystrings, men skal så sørge for
at checke intensivt på input for at sikre sig, at en bruger ikke har ændret
i url'en.

Det korte svar er, at get/post data nok er løsning.

Mvh
Jimmy




Lasse Hedegaard (15-09-2003)
Kommentar
Fra : Lasse Hedegaard


Dato : 15-09-03 23:37

Jimmy skrev:

>Sessions fungerer ikke på tværs af servere.
>Sessions er blot en cookie på din harddisk med et ID, som matches mod en
>tilsvarende på serveren, hvor selve indholdet er lagret.

Jeg har prøvet at lave det uafhængigt af cookies, da IDet sendes med
gennem alle formularerne (som hele betalingssystemet består af).

>Forsøger du at hente din værdi på en anden server vil det fejle, da din
>lokale cookie ikke svarer til den nye servers domænenavn.

Det er klart. Kan jeg på en måde få outputtet af en bestemt session ud
alligevel, selvom http-request foretages fra en anden maskine? Jeg
kender jo IDet, og sender dette med i form'en.

>I det hele taget er sessions ikke smarte at anvende ved betalingssystemer,
>da brugere kan slå cookies fra.

Hvis man sørger for at få IDet med alle vegne, så er det jo en
løsning. Selvfølgelig er det noget pladder,

>Alternativt kan man anvende sessions i querystrings, men skal så sørge for
>at checke intensivt på input for at sikre sig, at en bruger ikke har ændret
>i url'en.

Når man ikke bruger register_globals så er det vel begrænset hvad der
kan ske?

>Det korte svar er, at get/post data nok er løsning.

Problemet er, at der skal gemmes nogle data fra starten, som først
skal udleveres til kunden EFTER betaling med Dankort. Disse data
gemmer jeg i sessionen - er der en anden løsning hvorpå jeg kan gemme
disse data til efter transaktionen?

Venligst,
Lasse Hedegaard

--
http://www.simlock.dk/
- også Siemens M55, S55, C55 samt SonyEricsson T610

Jimmy (15-09-2003)
Kommentar
Fra : Jimmy


Dato : 15-09-03 23:59


"Lasse Hedegaard" <laxxe@nospam.dk> wrote in message
news:5cfcmv45mi1u5vio0evc3u1agesg1k1j5s@news.tele.dk...
> Jimmy skrev:
>
> >Sessions fungerer ikke på tværs af servere.
> >Sessions er blot en cookie på din harddisk med et ID, som matches mod en
> >tilsvarende på serveren, hvor selve indholdet er lagret.
>
> Jeg har prøvet at lave det uafhængigt af cookies, da IDet sendes med
> gennem alle formularerne (som hele betalingssystemet består af).
>
> >Forsøger du at hente din værdi på en anden server vil det fejle, da din
> >lokale cookie ikke svarer til den nye servers domænenavn.
>
> Det er klart. Kan jeg på en måde få outputtet af en bestemt session ud
> alligevel, selvom http-request foretages fra en anden maskine? Jeg
> kender jo IDet, og sender dette med i form'en.

Nej det kan du ikke.
Det er en del af sikkerheden i at anvende sessions.

Du har fået tildelt en cookie på dit domæne simlock,dk, som modsvarer
information på serveren.
Når du ryger over på betalingsdomænet får du blot en ny cookie, som
tilsvarende kan lagre information, men denne gang på deres server.


> >Alternativt kan man anvende sessions i querystrings, men skal så sørge
for
> >at checke intensivt på input for at sikre sig, at en bruger ikke har
ændret
> >i url'en.
>
> Når man ikke bruger register_globals så er det vel begrænset hvad der
> kan ske?

Hvis du overfører din brugers unikke ID i en querystreng og jeg tilgår
betalingserveren med samme querystreng vil den tro det er samme bruger.
(med mindre den er barsk og checker på IP mv. og querystreng)


> >Det korte svar er, at get/post data nok er løsning.
>
> Problemet er, at der skal gemmes nogle data fra starten, som først
> skal udleveres til kunden EFTER betaling med Dankort. Disse data
> gemmer jeg i sessionen - er der en anden løsning hvorpå jeg kan gemme
> disse data til efter transaktionen?


Læg dem i en database og hent dem baseret på den querystreng du kan sende
frem og tilbage.

Jeg tror ikke du finder den "rene" og korrekte løsning, da det jo er noget
værre rod med betaling på en helt anden server...

Har du undersøgt, hvordan Dating.dk og lignende sites gør?
De har ikke alle deres egen gateway, men lader et vindue poppe op.

Også shg.dk anvender en anden udbyders gateway.

mvh
Jimmy




Lasse Hedegaard (16-09-2003)
Kommentar
Fra : Lasse Hedegaard


Dato : 16-09-03 00:24

Jimmy skrev:

>Nej det kan du ikke.
>Det er en del af sikkerheden i at anvende sessions.
>
>Du har fået tildelt en cookie på dit domæne simlock,dk, som modsvarer
>information på serveren.
>Når du ryger over på betalingsdomænet får du blot en ny cookie, som
>tilsvarende kan lagre information, men denne gang på deres server.

Der er nok ikke megen mulighed for at lagre cookies når det er et
script der laver http-requestet.

>Læg dem i en database og hent dem baseret på den querystreng du kan sende
>frem og tilbage.

Suk - ja, det var det jeg var bange for. MySQL har jeg aldrig fået tid
til at få sat mig ind i overhovedet.

>Jeg tror ikke du finder den "rene" og korrekte løsning, da det jo er noget
>værre rod med betaling på en helt anden server...

Det er nu ellers den mest almindelige løsning (så vidt jeg ved).

>Har du undersøgt, hvordan Dating.dk og lignende sites gør?
>De har ikke alle deres egen gateway, men lader et vindue poppe op.
>
>Også shg.dk anvender en anden udbyders gateway.

En anden løsning kunne være at sende de "hemmelige" data krypteret med
i formen, og først dekryptere dem på den sidste side, efter
betalingen.

Er der nogle krypteringsmuligheder i en standard PHP-installation?
mcrypt() ser ud til at kræve en speciel opsætning, og crypt() er kun
en-vejs?

Venligst,
Lasse Hedegaard

--
http://www.simlock.dk/
- også Siemens M55, S55, C55 samt SonyEricsson T610

Jimmy (16-09-2003)
Kommentar
Fra : Jimmy


Dato : 16-09-03 06:22


"Lasse Hedegaard" <laxxe@nospam.dk> wrote in message
news:j0icmv0v6utq2kojdv10s3qqr6qpqo2trf@news.tele.dk...
> Jimmy skrev:
>
> >Nej det kan du ikke.
> >Det er en del af sikkerheden i at anvende sessions.
> >
> >Du har fået tildelt en cookie på dit domæne simlock,dk, som modsvarer
> >information på serveren.
> >Når du ryger over på betalingsdomænet får du blot en ny cookie, som
> >tilsvarende kan lagre information, men denne gang på deres server.
>
> Der er nok ikke megen mulighed for at lagre cookies når det er et
> script der laver http-requestet.


Nej det er der måske ikke, det er blot for at illustrere, at et script, der
henter information på din server absolut ikke skal have mulighed for at suge
dine brugeres private session-informationer.


> >Læg dem i en database og hent dem baseret på den querystreng du kan sende
> >frem og tilbage.
>
> Suk - ja, det var det jeg var bange for. MySQL har jeg aldrig fået tid
> til at få sat mig ind i overhovedet.


Det er nu ret simpelt og du vil blive glad for det i længden


Mvh
Jimmy



Lasse Hedegaard (16-09-2003)
Kommentar
Fra : Lasse Hedegaard


Dato : 16-09-03 00:35

Jimmy skrev:

>Nej det kan du ikke.
>Det er en del af sikkerheden i at anvende sessions.

Hmm, jeg har ikke helt fanget det.

Man kan da godt bruge sessions uden cookies (hvis man sørger for at
overføre IDet hver gang en side hentes) - ikke?

Cookien ser jo blot sådan ud:

Set-Cookie: PHPSESSID=31a85ee6d849bf8d8e892c50a1b9ca4a; path=/

- og hvis denne ikke bruges, så er det vel bare en alm. variabel, der
fortæller PHP, hvilken session der er tale om? Men PHP går måske
samtidig ind og kigger på hostnavnet/IPen?

Øv! Systemet var stort set klar, manglede mere eller mindre kun
Dankort-betalings-delen (det er jo også muligt at betale på andre
måder), og nu ser det ud til, at det skal laves godt og grundigt om.

Idéer er meget velkomne - det her med MySQL vil jeg faktisk helst
holde mig udenom. Det der er problemet er altså at få gemt data til
"senere", efter betalingen er overstået.

Venligst,
Lasse Hedegaard

--
http://www.simlock.dk/
- også Siemens M55, S55, C55 samt SonyEricsson T610

Lasse Hedegaard (15-09-2003)
Kommentar
Fra : Lasse Hedegaard


Dato : 15-09-03 23:30

Beklager det usigende subject - fik sendt indlægget for tidligt.

Session-ID'et overføres mellem de forskellige sider gennem formularer,
der er altså ingen "almindelige" links. Jeg kan sagtens trække
session_id() ud på den sidste side, men $_SESSION arrayet vil ikke
rigtig som jeg?

Venligst,
Lasse Hedegaard

--
http://www.simlock.dk/
- også Siemens M55, S55, C55 samt SonyEricsson T610

Søg
Reklame
Statistik
Spørgsmål : 177559
Tips : 31968
Nyheder : 719565
Indlæg : 6408935
Brugere : 218888

Månedens bedste
Årets bedste
Sidste års bedste