|
| Hente variabel ud af LANG url Fra : M |
Dato : 10-05-06 09:21 |
| | |
Johan Holst Nielsen (10-05-2006)
| Kommentar Fra : Johan Holst Nielsen |
Dato : 10-05-06 10:43 |
| | |
M (10-05-2006)
| Kommentar Fra : M |
Dato : 10-05-06 11:21 |
|
>Eftersom det kun er
> www.bigm.dk/test/dk/indtast.php der loades på dine server - kan du ikke
>hente beløb... Så skal du smide beloeb parametren med i tunnelurl adressen.
hmm... du siger noget... jeg kigger lige på det.
Takker
| |
M (10-05-2006)
| Kommentar Fra : M |
Dato : 10-05-06 11:54 |
| | |
M (10-05-2006)
| Kommentar Fra : M |
Dato : 10-05-06 12:00 |
| | |
Christoffer (10-05-2006)
| Kommentar Fra : Christoffer |
Dato : 10-05-06 14:14 |
|
"M" <infoREMOVE-THIS@bigm.dk> skrev i en meddelelse
news:ush362dle86u211d4k6d2p9keneihjecfp@4ax.com...
> On Wed, 10 May 2006 12:54:18 +0200, M <infoREMOVE-THIS@bigm.dk> wrote:
> >>hmm... du siger noget... jeg kigger lige på det.
> >Nu har jeg fået beloieb til at stå på den anden side, men kan stadig
> >ikke få værdien ind i en variabel:
>
> https://pay.dandomain.dk/securetunnel.asp?navn=&merchantnumber=XXXXXXX&Sess
ionID=PHPSESSID%253D92f5239b449c9c07e43e106054b90eda&tunnelurl=http%3A%2F%2F
www.bigm.dk%2Ftest%2Fdk%2Findtast.php&beloeb=45
> Hah... kan se at det er et & og ikke et ? tegn til sidst i stien.
> hmm... gad vide hvordan jeg kan ændre det?
Spørgsmål:
Gør det ikke en forskel at bruge & frem for & alene?
| |
M (10-05-2006)
| Kommentar Fra : M |
Dato : 10-05-06 14:49 |
|
>Gør det ikke en forskel at bruge & frem for & alene?
>
Jo! & er den rigtige måde at gøre det på, men & bliver slet ikke
brugt i koden:
<?php
//Sætter session for ordrenummer og beløb merchantnummer
session_start();
session_register( "Orderid", "Amountp", "merchantnumber" );
$_SESSION["Orderid"] = "10"; // ordre nummer
//$HTTP_SESSION_VARS["Amountp"] = $_REQUEST["beloeb"]; //Beløb
$_SESSION["merchantnumber"] = "XXXXXXX"; //Forretningsnummer
if (isset($_GET["beloeb"])) $beloeb=$_GET["beloeb"];
else $beloeb=1;
?>
<body>
<table border="0" cellpadding="6" cellspacing="1" width="500">
<tr>
<td height="23" colspan="2"><b>Powerhosting Online
Betaling:</b><br><br></td>
</tr>
<tr>
<td height="23" colspan="2">
Her på siden kan du nemt og sikkert indbetale skyldigt beløb til
Powerhosting.dk<br><br>
<form method="get"
action=" https://pay.dandomain.dk/securetunnel.asp">
<!-- Navn<br><input type="text" name="navn"><br> -->
<input type="hidden" name="merchantnumber"
value="<?php echo $_SESSION['merchantnumber']?>">
<input type="hidden" name="SessionID"
value="<?php echo urlencode(getenv("HTTP_COOKIE"))?>">
<input type="hidden" name="tunnelurl"
value=" http://www.bigm.dk/test/dk/indtast.php">
Beløb<br><input type="text" name="beloeb" value="0">
<br><br><input type="submit" value="Videre">
</form>
</td>
</tr>
</table>
</body>
</html>
| |
Bjarne Bue (15-05-2006)
| Kommentar Fra : Bjarne Bue |
Dato : 15-05-06 11:39 |
|
M wrote:
> On Wed, 10 May 2006 12:54:18 +0200, M <infoREMOVE-THIS@bigm.dk> wrote:
>> Nu har jeg fået beloieb til at stå på den anden side, men kan stadig
>> ikke få værdien ind i en variabel:
>>
>> https://pay.dandomain.dk/securetunnel.asp?navn=&merchantnumber=XXXXXXX&SessionID=PHPSESSID%253D92f5239b449c9c07e43e106054b90eda&tunnelurl=http%3A%2F%2Fwww.bigm.dk%2Ftest%2Fdk%2Findtast.php&beloeb=45
>
> Hah... kan se at det er et & og ikke et ? tegn til sidst i stien.
> hmm... gad vide hvordan jeg kan ændre det?
Du forsøger at sende variable fra en form til to forskellige
scripts. Det kan ikke umiddelbart lade sig gøre. Din tunnelurl er
statisk, og kan ikke ændres, når først formen er loadet (med
mindre du bruger javascript, og det er ikke nogen pæn løsning).
Du kan løse dit problem ved at bruge en redirect-side, som jeg
nævnte i et svar på dit forrige spørgsmål. Du sender alle
oplysninger til redirect-siden, og sammensætter din URL ud fra de
oplysninger.
Fx:
<form method="post" action="redirect.php">
<input type="text" name="beloeb">
<input type="submit" value="Videre">
</form>
redirect.php:
<?php
session_start();
$tunnelurl = " http://www.bigm.dk/test/dk/indtast.php?beloeb="
. $_POST['beloeb'];
$redirectURL = " https://pay.dandomain.dk/securetunnel.asp"
. "?merchantnumber=" . $_SESSION['merchantnumber']
. "&SessionID=" . urlencode(getenv("HTTP_COOKIE"))
. "&beloeb=" . $_POST['beloeb']
. "&tunnelurl=" . $tunnelurl;
header("Location: " . $redirectURL);
?>
Denne løsning vil muligvis give problemer, hvis din tunnelurl
skal bruge flere variable. Jeg er ikke helt sikker på, hvad der
sker, hvis din tunnelurl fx ser sådan ud:
< http://www.bigm.dk/test/dk/indtast.php?beloeb=20&navn=Hugo>.
Sandsynligvis vil variablen 'navn' blive sendt til din
betalings-gateway, og det er jo ikke meningen. Det kan løses ved
at bruge et andet skilletegn end & i tunnelurl, men det kan vi
altid vende tilbage til, hvis du får problemer med det.
Med venlig hilsen
Bjarne
| |
M (16-05-2006)
| Kommentar Fra : M |
Dato : 16-05-06 07:12 |
|
>Du forsøger at sende variable fra en form til to forskellige
>scripts. Det kan ikke umiddelbart lade sig gøre. Din tunnelurl er
>statisk, og kan ikke ændres, når først formen er loadet (med
>mindre du bruger javascript, og det er ikke nogen pæn løsning).
Det lyder ikke pænt at blande java ind i det!
>Du kan løse dit problem ved at bruge en redirect-side, som jeg
>nævnte i et svar på dit forrige spørgsmål. Du sender alle
>oplysninger til redirect-siden, og sammensætter din URL ud fra de
>oplysninger.
Ups.. det har du ret i. Den er røget ind og ud lige så hurtigt. Jeg
kigger lige på den løsning.
Tusind tak.
| |
M (18-05-2006)
| Kommentar Fra : M |
Dato : 18-05-06 10:41 |
|
dk.php ->
<form method="post" action="redirect.php">
<input type="text" name="beloeb">
<input type="submit" value="Videre">
</form>
--------------------------------------------------------------------------------------
redirect.php ->
<?php
//Sætter session for ordrenummer og beløb merchantnummer
session_start();
session_register( "Orderid", "Amountp", "merchantnumber" );
$_SESSION["Orderid"] = "10"; // ordre nummer
//$HTTP_SESSION_VARS["Amountp"] = $_REQUEST["beloeb"]; //Beløb
$_SESSION["merchantnumber"] = "XXXXXXX"; //Forretningsnummer
//if (isset($_GET["beloeb"])) $beloeb=$_GET["beloeb"];
// else $beloeb=1;
?>
<body>
<table border="0" cellpadding="6" cellspacing="1" width="500">
<tr>
<td height="23" colspan="2"><b>Powerhosting Online
Betaling:</b><br><br></td>
</tr>
<tr>
<td height="23" colspan="2">
Her på siden kan du nemt og sikkert indbetale skyldigt beløb til
Powerhosting.dk<br><br>
<?php
$tunnelurl = " http://www.bigm.dk/test/dk/indtast.php?beloeb="
. $_POST['beloeb'];
$redirectURL = " https://pay.dandomain.dk/securetunnel.asp"
. "?merchantnumber=" . $_SESSION['merchantnumber']
. "&SessionID=" . urlencode(getenv("HTTP_COOKIE"))
. "&beloeb=" . $_POST['beloeb']
. "&tunnelurl=" . $tunnelurl;
header("Location: " . $redirectURL);
?>
</td>
</tr>
</table>
</body>
</html>
Jeg får desværre denne fejl:
Warning: Cannot modify header information - headers already sent by
(output started at /mnt/raid/www/www/bigm/test/dk2/redirect.php:24) in
/mnt/raid/www/www/bigm/test/dk2/redirect.php on line 34
Jeg kan ikke lige gennemskue hvad problemet er.
| |
Bjarne Bue (18-05-2006)
| Kommentar Fra : Bjarne Bue |
Dato : 18-05-06 11:37 |
|
M wrote:
> dk.php ->
>
> <form method="post" action="redirect.php">
> <input type="text" name="beloeb">
> <input type="submit" value="Videre">
> </form>
>
>
> --------------------------------------------------------------------------------------
>
> redirect.php ->
>
> <?php
>
> //Sætter session for ordrenummer og beløb merchantnummer
> session_start();
> session_register( "Orderid", "Amountp", "merchantnumber" );
> $_SESSION["Orderid"] = "10"; // ordre nummer
> //$HTTP_SESSION_VARS["Amountp"] = $_REQUEST["beloeb"]; //Beløb
> $_SESSION["merchantnumber"] = "XXXXXXX"; //Forretningsnummer
>
> //if (isset($_GET["beloeb"])) $beloeb=$_GET["beloeb"];
> // else $beloeb=1;
>
> ?>
>
> <body>
> <table border="0" cellpadding="6" cellspacing="1" width="500">
> <tr>
> <td height="23" colspan="2"><b>Powerhosting Online
> Betaling:</b><br><br></td>
> </tr>
>
> <tr>
> <td height="23" colspan="2">
> Her på siden kan du nemt og sikkert indbetale skyldigt beløb til
> Powerhosting.dk<br><br>
>
> <?php
>
>
> $tunnelurl = " http://www.bigm.dk/test/dk/indtast.php?beloeb="
> . $_POST['beloeb'];
> $redirectURL = " https://pay.dandomain.dk/securetunnel.asp"
> . "?merchantnumber=" . $_SESSION['merchantnumber']
> . "&SessionID=" . urlencode(getenv("HTTP_COOKIE"))
> . "&beloeb=" . $_POST['beloeb']
> . "&tunnelurl=" . $tunnelurl;
> header("Location: " . $redirectURL);
> ?>
> </td>
> </tr>
>
> </table>
>
> </body>
> </html>
>
> Jeg får desværre denne fejl:
>
> Warning: Cannot modify header information - headers already sent by
> (output started at /mnt/raid/www/www/bigm/test/dk2/redirect.php:24) in
> /mnt/raid/www/www/bigm/test/dk2/redirect.php on line 34
>
> Jeg kan ikke lige gennemskue hvad problemet er.
Du må ikke have noget output på en side, der kalder header(),
ikke engang et mellemrum. Al din html skal stå i dk.php,
redirect.php skal kun indeholde den php-kode, der videresender
til din betalings-gateway (dvs. det, der opbygger $tunnelurl og
kalder header()).
Med venlig hilsen
Bjarne
| |
M (18-05-2006)
| Kommentar Fra : M |
Dato : 18-05-06 13:02 |
|
>Du må ikke have noget output på en side, der kalder header(),
>ikke engang et mellemrum. Al din html skal stå i dk.php,
>redirect.php skal kun indeholde den php-kode, der videresender
>til din betalings-gateway (dvs. det, der opbygger $tunnelurl og
>kalder header()).
>
>Med venlig hilsen
>Bjarne
Hep Hey!
Du er for sej!
Tusind tak.
Jeg har prøvet at tilføje
. "&navn=" . $_POST['navn'];
i
$tunnelurl = " http://www.bigm.dk/test/dk2/indtast.php?beloeb="
. $_POST['beloeb']
. "&navn=" . $_POST['navn'];
Men jeg kan ikke hente navn ind via $_GET
Hvordan fikser jeg den?
Takker
| |
Bjarne Bue (18-05-2006)
| Kommentar Fra : Bjarne Bue |
Dato : 18-05-06 13:56 |
|
M wrote:
> Jeg har prøvet at tilføje
>
> . "&navn=" . $_POST['navn'];
>
> i
>
> $tunnelurl = " http://www.bigm.dk/test/dk2/indtast.php?beloeb="
> . $_POST['beloeb']
> . "&navn=" . $_POST['navn'];
>
> Men jeg kan ikke hente navn ind via $_GET
>
> Hvordan fikser jeg den?
Det er fordi din URL kommer til at se sådan ud (lidt forenklet):
< https://pay.dandomain.dk/securetunnel.asp?merchantnumber=xxx&tunnelurl=http://www.bigm.dk/indtast.php?beloeb=20&navn=Hugo>
Alle variable i URL'en bliver sendt til scriptet
securetunnel.asp, og hver gang der optræder et &-tegn, opfattes
det som en ny variabel.
Hvis din tunnelurl skal have flere variable, må du bruge et andet
skilletegn end &, og så skal du igennem lidt fiksfakserier for at
få det til at virke. Hvis du fx bruger ! som skilletegn, kan du
bygge din URL sådan:
$tunnelurl = " http://www.bigm.dk/test/dk2/indtast.php?var="
. $_POST['beloeb']
. "!" . $_POST['navn'];
Så sender du kun én variabel med tunnelurl, men den indeholder
flere værdier. Du kan plukke de enkelte værdier ud sådan (i
indtast.php):
<?php
$varArray = explode("!", $_GET['var']);
$beloeb = $varArray[0];
$navn = $varArray[1];
?>
Med venlig hilsen
Bjarne
| |
M (18-05-2006)
| Kommentar Fra : M |
Dato : 18-05-06 14:06 |
|
>Hvis din tunnelurl skal have flere variable, må du bruge et andet
>skilletegn end &, og så skal du igennem lidt fiksfakserier for at
>få det til at virke. Hvis du fx bruger ! som skilletegn, kan du
>bygge din URL sådan:
>
>$tunnelurl = " http://www.bigm.dk/test/dk2/indtast.php?var="
> . $_POST['beloeb']
> . "!" . $_POST['navn'];
>
>Så sender du kun én variabel med tunnelurl, men den indeholder
>flere værdier. Du kan plukke de enkelte værdier ud sådan (i
>indtast.php):
>
><?php
>$varArray = explode("!", $_GET['var']);
>$beloeb = $varArray[0];
>$navn = $varArray[1];
>?>
>
>Med venlig hilsen
>Bjarne
Tusind tak!
Jeg kigger på det, og vender tilbage!
| |
M (19-05-2006)
| Kommentar Fra : M |
Dato : 19-05-06 13:38 |
|
>Det er fordi din URL kommer til at se sådan ud (lidt forenklet):
>
>< https://pay.dandomain.dk/securetunnel.asp?merchantnumber=xxx&tunnelurl=http://www.bigm.dk/indtast.php?beloeb=20&navn=Hugo>
>
>Alle variable i URL'en bliver sendt til scriptet
>securetunnel.asp, og hver gang der optræder et &-tegn, opfattes
>det som en ny variabel.
>
>Hvis din tunnelurl skal have flere variable, må du bruge et andet
>skilletegn end &, og så skal du igennem lidt fiksfakserier for at
>få det til at virke. Hvis du fx bruger ! som skilletegn, kan du
>bygge din URL sådan:
>
>$tunnelurl = " http://www.bigm.dk/test/dk2/indtast.php?var="
> . $_POST['beloeb']
> . "!" . $_POST['navn'];
>
>Så sender du kun én variabel med tunnelurl, men den indeholder
>flere værdier. Du kan plukke de enkelte værdier ud sådan (i
>indtast.php):
>
><?php
>$varArray = explode("!", $_GET['var']);
>$beloeb = $varArray[0];
>$navn = $varArray[1];
>?>
>
>Med venlig hilsen
>Bjarne
Virker jo kanon! Næsten da. Hvis jeg f.eks. skrive Hans Otto i navnet,
og hopper videre, får jeg flg. fejl:
Bad Request
Your browser sent a request that this server could not understand.
The request line contained invalid characters following the protocol
string.
Scriptet kan umiddelbart ikke håndtere mellemrum!
| |
Bjarne Bue (19-05-2006)
| Kommentar Fra : Bjarne Bue |
Dato : 19-05-06 14:03 |
|
M wrote:
> Virker jo kanon! Næsten da. Hvis jeg f.eks. skrive Hans Otto i navnet,
> og hopper videre, får jeg flg. fejl:
>
> Bad Request
> Your browser sent a request that this server could not understand.
> The request line contained invalid characters following the protocol
> string.
>
> Scriptet kan umiddelbart ikke håndtere mellemrum!
Hvis du bruger urlencode() på navnet, så skulle det løse
problemet. < http://dk.php.net/urlencode>.
Jeg kom til at tænke på, at det egentlig ville være meget
lettere, hvis du kom de variable du skal have overført i
session-arrayet. Altså sæt
$_SESSION['beloeb'] = $_POST['beloeb'];
$_SESSION['navn'] = $_POST['navn'];
osv.
Så slipper du for at sætte variable på din tunnelurl.
Med venlig hilsen
Bjarne
| |
M (22-05-2006)
| Kommentar Fra : M |
Dato : 22-05-06 07:44 |
|
Takker. Men...
>Hvis du bruger urlencode() på navnet, så skulle det løse
>problemet. < http://dk.php.net/urlencode>.
"!" . urlencode($_POST['navn']);
=
beloeb=12!Karl+Otti
--------------------------------------------------
"!" . urldecode($_POST['navn']);
=
?beloeb=12!Karl%20Otti
-------------------------------------------------
Begge tilfælde returnere samme fejl.
>Jeg kom til at tænke på, at det egentlig ville være meget
>lettere, hvis du kom de variable du skal have overført i
>session-arrayet. Altså sæt
>$_SESSION['beloeb'] = $_POST['beloeb'];
>$_SESSION['navn'] = $_POST['navn'];
>osv.
>
>Så slipper du for at sætte variable på din tunnelurl.
>
>Med venlig hilsen
>Bjarne
Yep... det ville have sparret en del, men problemer er, at når jeg
kører en $_session variabel igennem en tunnel, så går de tabt.
Jeg kunne også vælge blot at lave alle indtastninger på samme side.
Men det giver bare ikke nogen løsning på URL problemet!
| |
Bjarne Bue (22-05-2006)
| Kommentar Fra : Bjarne Bue |
Dato : 22-05-06 12:42 |
|
M wrote:
> Takker. Men...
>
>> Hvis du bruger urlencode() på navnet, så skulle det løse
>> problemet. < http://dk.php.net/urlencode>.
>
> "!" . urlencode($_POST['navn']);
>
> =
>
> beloeb=12!Karl+Otti
> --------------------------------------------------
> "!" . urldecode($_POST['navn']);
>
> =
>
> ?beloeb=12!Karl%20Otti
> -------------------------------------------------
>
> Begge tilfælde returnere samme fejl.
Jeg kan ikke genskabe din fejl på min egen server, så nu gætter
jeg bare. Hvis det kun er mellemrummene, der giver problemer, så
kan du erstatte dem med fx underscore, inden du sammensætter din
URL. Prøv med noget i retning af
$navn = $_POST['navn'];
str_replace(" ", "_", $navn);
< http://dk.php.net/str_replace>
Og så skal du selvfølgelig fjerne underscores igen, når du senere
trækker navnet ud fra URL'en. :)
Med venlig hilsen
Bjarne
| |
M (22-05-2006)
| Kommentar Fra : M |
Dato : 22-05-06 13:07 |
|
>Jeg kan ikke genskabe din fejl på min egen server, så nu gætter
>jeg bare. Hvis det kun er mellemrummene, der giver problemer, så
>kan du erstatte dem med fx underscore, inden du sammensætter din
>URL. Prøv med noget i retning af
>
>$navn = $_POST['navn'];
>str_replace(" ", "_", $navn);
>
>< http://dk.php.net/str_replace>
>
>Og så skal du selvfølgelig fjerne underscores igen, når du senere
>trækker navnet ud fra URL'en. :)
>
>Med venlig hilsen
>Bjarne
hæhæhæ... Det virker sq.
Tusind mange tak for hjælpen.
| |
|
|