/ 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
Værdi fra textbox til variabel i samme scr~
Fra : M


Dato : 04-05-06 12:05

Hej!

Jeg har et script med bla. flg. kode:

<input type="text" name="beloeb">

og

<form method="post"
action="https://pay.dandomain.dk/securetunnel.asp?merchantnumber=
echo $HTTP_SESSION_VARS["merchantnumber"] ?>&beloeb=<? echo
$_GET["beloeb"] ?>&SessionID=<? echo urlencode(getenv("HTTP_COOKIE"));
?>&tunnelurl=
http://www.bigm.dk/test/dk/indtast.php" name="Form"
autocomplete="off">

Jeg har brug for, at når jeg trykker på knappen Submit, så bliver der
i URL'en skrevet beloeb=værdien i textboxen.

Hvordan gør jeg det?

På forhånd tak!

 
 
Bertel Lund Hansen (04-05-2006)
Kommentar
Fra : Bertel Lund Hansen


Dato : 04-05-06 18:27

M skrev:

> Jeg har et script med bla. flg. kode:

> <input type="text" name="beloeb">

> og

> <form method="post"
> action="https://pay.dandomain.dk/securetunnel.asp?merchantnumber=
> echo $HTTP_SESSION_VARS["merchantnumber"] ?>&beloeb=<? echo
> $_GET["beloeb"] ?>&SessionID=<? echo urlencode(getenv("HTTP_COOKIE"));
> ?>&tunnelurl=
http://www.bigm.dk/test/dk/indtast.php" name="Form"
> autocomplete="off">

> Jeg har brug for, at når jeg trykker på knappen Submit, så bliver der
> i URL'en skrevet beloeb=værdien i textboxen.

> Hvordan gør jeg det?

Først skal du lige rette alle &'erne til "&amp;". Ellers kløjs
browseren måske i det. & er et reserveret tegn i HTML, og derfor
må man ikke bruge det råt, men "&amp;" er HTML-koden for tegnet
("amp" er forkortelse af "ampersand").

Selve problemet:

I starten af PHP-koden:

if (isset($_GET["beloeb"])) $beloeb=$_GET["beloeb"];
else $beloeb=0;

Nede i formularkoden:
Beløb: <input type='text' size='30' name='beloeb'
value='<?=$beloeb?>'>

På den måde henter man en eventuelt indtastet værdi og propper
den tilbage på plads hver gang formularsiden hentes påny. Det er
den måde indtastninger kan 'overleve' et submit.

--
Bertel
http://bertel.lundhansen.dk/      http://fiduso.dk/

M (05-05-2006)
Kommentar
Fra : M


Dato : 05-05-06 07:31

>Selve problemet:
>
>I starten af PHP-koden:
>
>if (isset($_GET["beloeb"])) $beloeb=$_GET["beloeb"];
>else $beloeb=0;

Kode indsat, men jeg forstår det ikke helt. Uanset hvad, så vil
værdien altid være 0.

>Nede i formularkoden:
>Beløb: <input type='text' size='30' name='beloeb'
>value='<?=$beloeb?>'>
Jeg har indsat:

<input type='text' size='20' name='beloeb' value='<?=$beloeb?>'>

-------------------------------------------------------------------------------------
Værdien i $beloeb er altid 0, dvs. også i URL'en, selvom jeg ændre
værdien i textbox'en.

Hele koden ser således ud.

<?php

//Sætter session for ordrenummer og beløb merchantnummer
session_start();
session_register( "Orderid", "Amountp", "merchantnumber" );
$HTTP_SESSION_VARS["Orderid"] = "10"; // ordre nummer
//$HTTP_SESSION_VARS["Amountp"] = $_REQUEST["beloeb"]; //Beløb
$HTTP_SESSION_VARS["merchantnumber"] = "xxxxxxx";

if (isset($_GET["beloeb"])) $beloeb=$_GET["beloeb"];
      else $beloeb=0;
?>

<body>
<table border="0" cellpadding="6" cellspacing="1" width="500">
   <tr>
<td height="23" colspan="2"><b>Online Betaling:</b><br><br></td>
   </tr>

   <tr>
<td height="23" colspan="2"> Besked<br><br>
</td>
   </tr>

   <tr><td>
   Navn
   <br>
   <input type="text" name="navn"><br>

   Beløb
   <br>
   <!-- <input type="text" name="beloeb"> -->
    <input type='text' size='20' name='beloeb'
value='<?=$beloeb?>'>
   
   <br><br></tr></td>
   
   <tr>
<td height="23" colspan="2">
   

<form method="post"
action="https://pay.dandomain.dk/securetunnel.asp?merchantnumber=
echo $HTTP_SESSION_VARS["merchantnumber"] ?>&amp;Beloeb=<? echo
$beloeb ?>&amp;SessionID=<? echo urlencode(getenv("HTTP_COOKIE"));
?>&amp;tunnelurl=
http://www.bigm.dk/test/dk/indtast.php" name="Form"
autocomplete="off">
<input type="submit" value="Send">
</form>


</td>
   </tr>
   
</table>

</body>
</html>

Jesper H (05-05-2006)
Kommentar
Fra : Jesper H


Dato : 05-05-06 07:48

Hej M

Læg mærke til at du i din form har valgt at bruge POST:
> <form method="post"
Mens du i starten af scriptet forsøger at hente vha. GET:
> if (isset($_GET["beloeb"])) $beloeb=$_GET["beloeb"];
> else $beloeb=0;

Så _enten_ skal du
* rette din form til at sende med metoden GET,
* rette din indlæsning af beloeb til $_POST,
* eller rette din indlæsning af beloeb til $_REQUEST, som både
indeholder det, der står i $_POST og $_GET


--
Mvh Jesper, http://fdf.dk/landsdel1/


M (05-05-2006)
Kommentar
Fra : M


Dato : 05-05-06 07:59

>Læg mærke til at du i din form har valgt at bruge POST:
>> <form method="post"
>Mens du i starten af scriptet forsøger at hente vha. GET:
>> if (isset($_GET["beloeb"])) $beloeb=$_GET["beloeb"];
>> else $beloeb=0;
>
>Så _enten_ skal du
>* rette din form til at sende med metoden GET,
>* rette din indlæsning af beloeb til $_POST,
>* eller rette din indlæsning af beloeb til $_REQUEST, som både
>indeholder det, der står i $_POST og $_GET

Takker for svaret... men...

jeg har desværre prøvet det uden held.

Jeg mangler noget kode det kan finde ud af at tage værdien fra beloeb
og smide den ind i en variabel, så jeg via URL'en kan få den overført
til en anden side.

Bertel Lund Hansen (05-05-2006)
Kommentar
Fra : Bertel Lund Hansen


Dato : 05-05-06 08:46

M skrev:

> Jeg mangler noget kode det kan finde ud af at tage værdien fra beloeb
> og smide den ind i en variabel, så jeg via URL'en kan få den overført
> til en anden side.

Hvis din form bruger metoden GET, skal den modtagende side hente
variablen som $_GET['beloeb'] sådan som jeg skrev tidligere
(eller $_REQUEST som Jesper skrev):

if (isset($_GET["beloeb"])) $beloeb=$_GET["beloeb"];
else $beloeb=0;

Jeg regnede bare med at det var en side der kaldte sig selv.

--
Bertel
http://bertel.lundhansen.dk/      http://fiduso.dk/

M (05-05-2006)
Kommentar
Fra : M


Dato : 05-05-06 09:37

>Hvis din form bruger metoden GET, skal den modtagende side hente
>variablen som $_GET['beloeb'] sådan som jeg skrev tidligere
>(eller $_REQUEST som Jesper skrev):
>
>if (isset($_GET["beloeb"])) $beloeb=$_GET["beloeb"];
>else $beloeb=0;
>
>Jeg regnede bare med at det var en side der kaldte sig selv.

Da linket til næste side ser således ud:
<form method="post"
action="https://pay.dandomain.dk/securetunnel.asp?merchantnumber=
echo $HTTP_SESSION_VARS["merchantnumber"] ?>&amp;Beloeb=<? echo
$beloeb ?>&amp;SessionID=<? echo urlencode(getenv("HTTP_COOKIE"));
?>&amp;tunnelurl=
http://www.bigm.dk/test/dk/indtast.php" name="Form"
autocomplete="off">

så kan jeg ikke bruge $_request, da man udmiddelbart ikke kan overføre
session varialer på tværs af sider gennem en tunnel
(https://pay.dandomain.dk/securetunnel.asp?merchantnumber).

Bertel Lund Hansen (05-05-2006)
Kommentar
Fra : Bertel Lund Hansen


Dato : 05-05-06 11:32

M skrev:

> så kan jeg ikke bruge $_request, da man udmiddelbart ikke kan overføre
> session varialer på tværs af sider gennem en tunnel
> (https://pay.dandomain.dk/securetunnel.asp?merchantnumber).

Det havde været rart at vide det på forhånd. Så havde jeg ikke
spildt min tid.

Mon ikke du skal i ASP-gruppen og spørge om hvordan man overfører
variable gennem en ASP-tunnel?

--
Bertel
http://bertel.lundhansen.dk/      http://fiduso.dk/

M (05-05-2006)
Kommentar
Fra : M


Dato : 05-05-06 12:10

>Det havde været rart at vide det på forhånd. Så havde jeg ikke
>spildt min tid.
>
>Mon ikke du skal i ASP-gruppen og spørge om hvordan man overfører
>variable gennem en ASP-tunnel?

ASP er ikke problemet. Det har intet med ASP at gøre.
Som jeg skrev:

Jeg mangler noget kode det kan finde ud af at tage værdien fra beloeb
(tekst boksen)
og smide den ind i en variabel, så jeg via URL'en kan få den overført
til en anden side.

Det samme sker med
$HTTP_SESSION_VARS["merchantnumber"]
SessionID

Men de har pt. en fast værdi. Derfor er det ikke noget problem med
dem.

Når jeg trykker videre ser linket således ud:

https://pay.dandomain.dk/securetunnel.asp?merchantnumber=XXXXXX&Beloeb=0&SessionID=PHPSESSID%3D398dc330e8e93908f1a100ee935a162c&tunnelurl=http://www.bigm.dk/test/dk/indtast.php

Beloeb=0 skuller gerne være eks. Beloeb=12 eller noget. Op efter hvad
værdien i boksen er.

Bertel Lund Hansen (05-05-2006)
Kommentar
Fra : Bertel Lund Hansen


Dato : 05-05-06 13:15

M skrev:

> Når jeg trykker videre ser linket således ud:

> https://pay.dandomain.dk/securetunnel.asp?merchantnumber=XXXXXX&Beloeb=0&SessionID=PHPSESSID%3D398dc330e8e93908f1a100ee935a162c&tunnelurl=http://www.bigm.dk/test/dk/indtast.php

Ret "Beloeb" til "beloep" - tjek evt. helt din kode for den slags
fejl. PHP er versalfølsomt.

--
Bertel
http://bertel.lundhansen.dk/      http://fiduso.dk/

M (05-05-2006)
Kommentar
Fra : M


Dato : 05-05-06 13:47

>Ret "Beloeb" til "beloep" - tjek evt. helt din kode for den slags
>fejl. PHP er versalfølsomt.

Der står kun beloeb i koden. Beloep vil være tosset at skrive, da det
vil være en stavefejl til senere opdatering af koden.

Bjarne Bue (05-05-2006)
Kommentar
Fra : Bjarne Bue


Dato : 05-05-06 20:21

M wrote:
> Hej!
>
> Jeg har et script med bla. flg. kode:
>
> <input type="text" name="beloeb">
>
> og
>
> <form method="post"
> action="https://pay.dandomain.dk/securetunnel.asp?merchantnumber=
> echo $HTTP_SESSION_VARS["merchantnumber"] ?>&beloeb=<? echo
> $_GET["beloeb"] ?>&SessionID=<? echo urlencode(getenv("HTTP_COOKIE"));
> ?>&tunnelurl=
http://www.bigm.dk/test/dk/indtast.php" name="Form"
> autocomplete="off">
>
> Jeg har brug for, at når jeg trykker på knappen Submit, så bliver der
> i URL'en skrevet beloeb=værdien i textboxen.

En mulighed kunne være at lade din form submitte til en redirect-side,
hvor du sammensætter din URL og derefter videresender til den rigtige side.

Fx

<form method="post" action="redirect.php">
<input type="text" name="beloeb" value="0">
</form>


redirect.php:
<?php
// Husk at verificere at de variable du bruger
// indeholder det, du forventer.

$URL = "https://pay.dandomain.dk/securetunnel.asp?merchantnumber="
   . $_SESSION["merchantnumber"]
   . "&beloeb="
   . $_POST["beloeb"]
   . "&SessionID="
   ...;
header("Location: " . $URL);
?>

Bemærk at jeg bruger $_SESSION i stedet for $HTTP_SESSION_VARS, som er
en forældet måde at tilgå session-arrayet på.


Mvh Bjarne

Bjarne Bue (06-05-2006)
Kommentar
Fra : Bjarne Bue


Dato : 06-05-06 08:49

Bjarne Bue wrote:
> M wrote:
>> Hej!
>>
>> Jeg har et script med bla. flg. kode:
>>
>> <input type="text" name="beloeb">
>>
>> og
>>
>> <form method="post"
>> action="https://pay.dandomain.dk/securetunnel.asp?merchantnumber=
>> echo $HTTP_SESSION_VARS["merchantnumber"] ?>&beloeb=<? echo
>> $_GET["beloeb"] ?>&SessionID=<? echo urlencode(getenv("HTTP_COOKIE"));
>> ?>&tunnelurl=
http://www.bigm.dk/test/dk/indtast.php" name="Form"
>> autocomplete="off">
>>
>> Jeg har brug for, at når jeg trykker på knappen Submit, så bliver der
>> i URL'en skrevet beloeb=værdien i textboxen.
>
> En mulighed kunne være at lade din form submitte til en redirect-side,
> hvor du sammensætter din URL og derefter videresender til den rigtige side.

Og en anden mulighed kunne være bare at lade din form styre hvad,
der skal puttes i URL'en. Sæt method til get og action til
grundstammen af den side du redirecter til, og brug skjulte
felter i formen til at få variablerne med over:

<form method="get"
action="https://pay.dandomain.dk/securetunnel.asp">
<input type="text" name="beloeb" value="0">
<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">
<input type="submit">
</form>

Nogle gange hjælper det at sove på det før man svarer

Mvh Bjarne

M (08-05-2006)
Kommentar
Fra : M


Dato : 08-05-06 07:55

><form method="get"
>action="https://pay.dandomain.dk/securetunnel.asp">
> <input type="text" name="beloeb" value="0">
> <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">
> <input type="submit">
></form>
>
>Nogle gange hjælper det at sove på det før man svarer


Mange tak for svaret. Jeg kigger nærmere på det og vender tilbage.

Takker.

M (09-05-2006)
Kommentar
Fra : M


Dato : 09-05-06 14:14

><form method="get"
>action="https://pay.dandomain.dk/securetunnel.asp">
> <input type="text" name="beloeb" value="0">
> <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">
> <input type="submit">
></form>
>
>Nogle gange hjælper det at sove på det før man svarer
>
>Mvh Bjarne

Yes sir!

Det ser ud til at virke. Har ikke haft pokkers meget tid her på det
sidste. Jeg rediger lidt videre, så alt ser ud som det skal og poster
så lige en færdig kode.

Mange mange tak!

M (10-05-2006)
Kommentar
Fra : M


Dato : 10-05-06 09:10

> Jeg rediger lidt videre, så alt ser ud som det skal og poster
>så lige en færdig kode.
>

Her er koden:

<form method="get"
action="https://pay.dandomain.dk/securetunnel.asp">
   Navn<br><input type="text" name="navn"><br>
   Beløb<br><input type="text" name="beloeb" value="0">
<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">
<br><br><input type="submit" value="Videre">
</form>

Takker mange gange. Har fået et nyt problem, men det kræver vidst et
nyt indlæg.

Søg
Reklame
Statistik
Spørgsmål : 177501
Tips : 31968
Nyheder : 719565
Indlæg : 6408522
Brugere : 218887

Månedens bedste
Årets bedste
Sidste års bedste