webForumDet fria alternativet

Basalt för den som kan eller ....!

PHPur PHP

14 svar · 843 visningar · startad av biggles-1

Medlem sedan jan. 2005125 inlägg
Frågan#1

Hej,

Har en enkel hostad betalsida (hos Samport) som använder ett enkelt formulär i kombination med PHP. Jag vill nu byta till Payson.se och fastnar på vad som förmodligen är mycket basalt för er som kan, men där mina php-kunskaper är obefintliga.

Har fått nedanstående kod från Payson och råkar ut för följande (koden är då kompletterad med min egen information):

<?
$AgentID="???";
$Key="??????????";

$Description =		"Description of item or service";
$SellerEmail =		"seller@email.com";
$BuyerEmail	=		"buyer@email.com";
$Cost =		"4";	//Cost of item or service 
$ExtraCost =	"0";	//Shipping 
$OkUrl =	"http://www.yoursite.com/verify.php";
$CancelUrl = "http://www.yoursite.com/error.php";
$RefNr =	"123"; //Merchant reference number 
$GuaranteeOffered = "1";

$MD5string = $SellerEmail . ":" . $Cost . ":" . $ExtraCost . ":" . $OkUrl . ":" . $GuaranteeOffered . $Key;
$MD5Hash = md5($MD5string);

?>

<form action="https://www.payson.se/merchant/default.aspx" method="post">

<input type="hidden" name="BuyerEmail" value="<? echo $BuyerEmail ?>">
<input type="hidden" name="AgentID" value="<? echo $AgentID ?>">
<input type="hidden" name="Description" value="<? echo $Description ?>">
<input type="hidden" name="SellerEmail" value="<? echo $SellerEmail ?>">
<input type="hidden" name="Cost" value="<? echo $Cost ?>">
<input type="hidden" name="ExtraCost" value="<? echo $ExtraCost ?>">
<input type="hidden" name="OkUrl" value="<? echo $OkUrl ?>">
<input type="hidden" name="CancelUrl" value="<? echo $CancelUrl ?>">
<input type="hidden" name="RefNr" value="<? echo $RefNr ?>">
<input type="hidden" name="MD5" value="<? echo $MD5Hash ?>">
<input type="hidden" name="GuaranteeOffered" value="<? echo $GuaranteeOffered ?>">

<input type="submit" value="Send request">
</form>

Detta händer:

  1. value="<? echo $AgentID ?>" - hämtar inte information, anger att jag inte angett ett heltal, vilket jag gjort (i mitt fall 2576)!

Fungerar om jag anger 2576 direkt i formuläret , typ value="2576"

  1. value="<? echo $GuaranteeOffered ?>" - hämtar inte information, anger att jag måste ange 0, 1, 2, vilket jag gjort enligt det ni ser.

Fungerar om jag skriver direkt i formuläret, typ value="1"

  1. value="<? echo $ExtraCost ?>" - hämtar inte information, anger att den saknar parameter då jag skriver "0", vilket jag enligt manualen skall göra om jag inte vill lägga på en typ fraktkostnad.

Fungerar om jag skriver direkt i formuläret, typ value="100,00" men inte bara "0" eller "0,00"

Övrig rader hämtas den vad jag förstår, då jag testar mot Payson.se testsida!

Vad är fel eller vad gör jag fel?

Skulle uppskatta om någon kunde slänga ett getöga och tala om vad jag gör fel eller vad som saknas i koden jag fått.

Mvh Biggles

Medlem sedan jan. 2005125 inlägg
#2

Hm .. jag som trodde detta skulle vara enkelt för er guru´s. Om jag istället omformulerar frågeställningen (utifrån en novis synfält).

Går det att begränsa kommandot <? echo $AgentID ?> så att det inte hämtar informationen?

För mig är nämligen koden ovan identiskt formulerad (förutom "innehållet"), så jag förstår inte varför vissa rader hämtas och andra inte.

Finns det något svar på detta?

Mvh biggles

Medlem sedan juni 20006 031 inlägg
#3

Du har angett dina heltal som strängar.

$GuaranteeOffered = "1";    // här är 1 en sträng
$GuaranteeOffered = 1;     // här är 1 en integer (heltal)
Medlem sedan jan. 2005125 inlägg
#4

Hej Pedda,

Tack för kommentar, men tyvärr så fungerar det ändå inte :(.

Jag får följande felmeddelande, då jag testar mot Payson.

------

GuaranteeOffered - Obligatorisk - Ogiltig garantityp, skall vara 0,1 eller 2 (min not = enligt manualen skall jag ange 1, vilket jag gjort)

ExtraCost - Obligatorisk - Fel format, använd komma och siffror med två decimaler (100,00)

(min not = anges som heltal eller flyttal och enligt manual skall jag ange 0, vilket jag gjort)

------

Någon ytterligare tanke?

Mvh biggles

Medlem sedan juni 20031 837 inlägg
#5

Vilken version av PHP använder du?
i vissa fall måste man skriva

<?php

och inte bara

<?

test

<?php
$AgentID="???";
$Key="??????????";

$Description = "Description of item or service";
$SellerEmail = "seller@email.com";
$BuyerEmail = "buyer@email.com";
$Cost = "4"; //Cost of item or service
$ExtraCost = "0"; //Shipping
$OkUrl = "http://www.yoursite.com/verify.php";
$CancelUrl = "http://www.yoursite.com/error.php";
$RefNr = "123"; //Merchant reference number
$GuaranteeOffered = "1";

$MD5string = $SellerEmail . ":" . $Cost . ":" . $ExtraCost . ":" . $OkUrl . ":" . $GuaranteeOffered . $Key;
$MD5Hash = md5($MD5string);
?>

<form action="https://www.payson.se/merchant/default.aspx" method="post">

<input type="hidden" name="BuyerEmail" value="<?php echo $BuyerEmail ?>">
<input type="hidden" name="AgentID" value="<?php echo $AgentID ?>">
<input type="hidden" name="Description" value="<?php echo $Description ?>">
<input type="hidden" name="SellerEmail" value="<?php echo $SellerEmail ?>">
<input type="hidden" name="Cost" value="<?php echo $Cost ?>">
<input type="hidden" name="ExtraCost" value="<?php echo $ExtraCost ?>">
<input type="hidden" name="OkUrl" value="<?php echo $OkUrl ?>">
<input type="hidden" name="CancelUrl" value="<?php echo $CancelUrl ?>">
<input type="hidden" name="RefNr" value="<?php echo $RefNr ?>">
<input type="hidden" name="MD5" value="<?php echo $MD5Hash ?>">
<input type="hidden" name="GuaranteeOffered" value="<?php echo $GuaranteeOffered ?>">

<input type="submit" value="Send request">
</form>
Medlem sedan jan. 2005125 inlägg
#6

Hej,

Hulken - Även jag noterade att php "saknas" php i början, men när jag testade så gjorde det ingen skillnad :(.

När jag "testar" ligger mina sidorna (index.html + send.php) i en folder på min egen dator och det är härifrån jag sänder iväg mitt formulär mot Paysons testsida.

Jag har även lagt upp sidorna på min externa server, men när jag skickar min förfrågan därifrån så fungerar det inte alls.

Spelar det någon roll var sidorna ligger för att det skall fungera?

Mvh biggles

Medlem sedan juni 20031 837 inlägg
#7

hur ser det ut i html-koden när du öppnar sidan i webbläsaren?
sidan som du visar koden för här, är det index.html eller send.php?
om det är index.html så måste du byta till .php istället.

Medlem sedan juni 20031 837 inlägg
#8

När du testar sidorna, går du via en webbserver som har php eller öppnar du filerna via utforskaren?

Medlem sedan jan. 2005125 inlägg
#9

Hej Hulken,

Tack för att du tar dig tid, uppskattat!

Som jag skrev tidigare har jag testat både på den egna datorn och via webbservern på Loopia. Använder mig av index.html med formuläret och send.php med php-koden.

Från den egna datorn via webbläsaren fyller jag i delar av formuläret och skickar sedan iväg förfrågan till Paysons testsida och får då tillbaka ok på de flesta rader, men inte för de jag nämt ovan.

Via webbläsaren och extern webbserver hämtar jag upp aktuell index.html, men där kommer jag inte vidare alls.

Hm ... verkar som att ingen information hämtas till formuläret trots att testsidan hos Payson säger ok.

Vad är det som triggar att formuläret hämtar informationen på php-sidan? Är det när jag hämtar index.html/formuläret via webbläsaren på den externa servern eller är det när jag skickar/"Submit"?

mvh biggles

Medlem sedan juni 20031 837 inlägg
#10

Du svarade inte på min fråga om vilken sida det var du visade koden för. är det index.html eller send.php?

Du har php-kod i koden du visar så för att den ska exekveras måste det vara en php-sida (dvs filändelsen ska vara .php)

vad innehåller index.html och send.php?

i vilket skede ska formuläret hämta information från php-sidan? vad är det för koppling mellan dem?

koden som du visar i ditt första inlägg, är det från två olika sidor?
Det är lättare om du anger från vilken sida koden är hämtad.
Testa att lägga koden som jag postade innan i en fil och döper den till något som slutar på .php

Medlem sedan jan. 2005125 inlägg
#11

God morgon Hulken,

Ledsen om jag varit otydlig men följande gäller:

Ursprungskoden jag visade i första inlägget är från den "send.php fil" jag fick från Payson.

Jag har sedan delat upp den i 2 dokument:

  1. index.html som innehåller formuläret i ett vanligt html dokument

  2. send.php som innehåller informationen som skall hämtas (info inom <? ?> i eget dokument och utan något formulär inunder).

Båda filerna ligger sedan på en extern server, i mitt fall Loopia.

Ett BASALT fel jag själv kom på igårkväll, var att jag just inte gett index-filen ändelsen *.php, som du mycket riktigt frågade om.

Problemet kvarstår dock, för när jag öppnar index.php på servern via min webbläsare så hämtar formuläret inte informationen från send.php (har tagit bort type="hidden" för att kunna se resultatet).

Skall det finnas en speciell koppling mellan dokumenten, då jag gjort send.php till ett eget dokument? M a o hur vet index.php (formuläret) att den skall hämta informationen från just send.php (informationen)?

Mvh Biggles

P.S. Har även testat att lägga koden du skickade i eget dokument på servern och sedan hämtat den, men med samma resultat som ovan.

Medlem sedan juni 20031 837 inlägg
#12

för att formuläret (index.php) ska hitta värdena för t.ex $AgentID så måste du inkludera filen med t.ex.

Exempel för index.php

<?php
require_once("send.php");
?>
<form action="https://www.payson.se/merchant/default.aspx" method="post">

<input type="hidden" name="BuyerEmail" value="<?php echo $BuyerEmail ?>">
<input type="hidden" name="AgentID" value="<?php echo $AgentID ?>">
<input type="hidden" name="Description" value="<?php echo $Description ?>">
<input type="hidden" name="SellerEmail" value="<?php echo $SellerEmail ?>">
<input type="hidden" name="Cost" value="<?php echo $Cost ?>">
<input type="hidden" name="ExtraCost" value="<?php echo $ExtraCost ?>">
<input type="hidden" name="OkUrl" value="<?php echo $OkUrl ?>">
<input type="hidden" name="CancelUrl" value="<?php echo $CancelUrl ?>">
<input type="hidden" name="RefNr" value="<?php echo $RefNr ?>">
<input type="hidden" name="MD5" value="<?php echo $MD5Hash ?>">
<input type="hidden" name="GuaranteeOffered" value="<?php echo $GuaranteeOffered ?>">

<input type="submit" value="Send request">
</form>

Skulle du kunna visa hur den genererade html-koden ser ut?
det är svårt att gissa sig till felen.

Medlem sedan jan. 2005125 inlägg
#13

TACK Hulken ..

... för att du gav mig din tid och löste problemet!

Ditt sista råd kopplade nämligen ihop sidorna och plötsligt fungerar det nu som jag tänkt mig (åtminstone tillsvidare *ler*), trots att jag är nybörjare. Tack än en gång!

Trevlig helg.

Nils

Medlem sedan juni 20031 837 inlägg
#14

Varsågod, bra att det löste sig till slut.

Jag tror att de flesta som lästa din första post trodde att all kod kom från samma fil eftersom du inte skrev något annat.

Man kan aldrig bli för tydlig när man ska beskriva sina problem :)

Man ska gärna använda de olika taggarna när man postar kod för att det ska bli lättare att läsa.

Några taggar som finns är:
[kod ] [/kod ]
[html ] [/html ]
[php ] [/php ]

Obs! Man ska inte ha med mellanrum i själva taggen.

Medlem sedan jan. 2005125 inlägg
#15

Hej igen,

Jag fortsätter att lära mig den hårda vägen, men som jag skriver i min signatur så brukar det bli bra i slutändan.

Otydligheten är nog helt baserad på min okunskap, som dock för det mesta balanseras upp av min envishet *ler*.

Är nu iallafall nästan i mål (delmål), men fastande på att jag inte får korrekt MD5-hash i informationen som skickas till Payson och har därför skrivit en ny tråd.

Trevlig helg.

Nils

P.S. Tack för tipset om att jag kan använda taggar och göra texten tydligare

135 ms totalt · 3 externa anrop · v20260731065814-full.4bcf49fe
0 ms — hämta forumlista (cache)
0 ms — hämta statistik (cache)
132 ms — hämta tråd, inlägg och bilagor (db)