webForumDet fria alternativet

Basalt # 2 för den som kan ang formulär, eller ...?

PHP

9 svar · 605 visningar · startad av biggles-1

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

Hej,

Är nu nästan i mål ned min lilla betalsida, efter god hjälp av The_Hulk i tidigare tråd. Fastnar dock på att ett värde måste åter till min send.php för att min MD5-Hash skall kunna beräknas där.

Frågeställningen är, hur hämta en post som skrivs in i formuläret till send.php (till $Cost), så att MD5-hash´n kan beräknas och sedan skickas tillbaka till formuläret för att ingå då formuläret postas till Payson. Finns annat alternativ?

Följande php-kod ligger i "send.php"

<?
	$AgentID="???";
	$Key="??????????";
	
	$Description = "Description of item or service";
	$SellerEmail = "seller@email.com";
	$ExtraCost = "0";    // extra fraktkostnad
	$OkUrl =	"http://www.yoursite.com/verify.php";
	$CancelUrl = "http://www.yoursite.com/error.php";
	$GuaranteeOffered = "1";

	$BuyerEmail = "buyer@email.com";      //används ej då det fylls i via formuläret
	$Cost = "4";       //används ej då det fylls i via formuläret
	$RefNr = "123";        //används ej då det fylls i via formuläret
	
	$MD5string = $SellerEmail . ":" . $Cost . ":" . $ExtraCost . ":" . $OkUrl . ":" . $GuaranteeOffered . $Key; 
	// $MD5string tar sitt värde för $Cost ovan, MEN fylls i via formuläret, HUR flytta värdet hit?

	$MD5Hash = md5($MD5string);

?>

Följande formulär ligger i "index.php"

<?php
require_once("send.php");
?>

<form action="https://www.payson.se/TestAgent/default.aspx" method="post"> 
   
   <input name="BuyerEmail"> 
   <input name="Cost">  
   <input name="RefNr">  

   <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="ExtraCost" value="<? echo $ExtraCost ?>"> 
   <input type="hidden" name="OkUrl" value="<? echo $OkUrl ?>"> 
   <input type="hidden" name="CancelUrl" value="<? echo $CancelUrl ?>"> 
   <input type="hidden" name="MD5" value="<? echo $MD5Hash ?>"> 
   <input type="hidden" name="GuaranteeOffered" value="<? echo $GuaranteeOffered ?>"> 
 
   <input type="submit" value="Send request"> 

</form>

Det är alltså ovan i MD5 som värdet blir fel då det som kunden skriver in under $Cost i formuläret, inte kommer med som en del i det som postas utan blir fel.

Mvh biggles

Medlem sedan sep. 20005 700 inlägg
#2

En gång för alla, använd

-taggen när du postar kod här så är det lättare att läsa :)

[noparse][php]$foo = "bar";

blir

$foo = "bar";
Medlem sedan juni 20006 031 inlägg
#3

Ändra

$Cost = "4";       //används ej då det fylls i via formuläret

till

$Cost = $_POST['Cost'];       //används ej då det fylls i via formuläret

/red
Missade att du inkluderar send.php i formulär sidan.

Så som du gör nu kommer det inte att fungera.

Medlem sedan jan. 2005125 inlägg
#4

Hej Gein - Nybörjare som jag är så missade jag det, men är nu åtgärdat *ler*!

Hej Pedda - Hm ... fungerade inte. Får tillbaka från Payson testsida att "Fel MD5, Använd parametrarna #SellerEmail# - #Cost# - #ExtraCost# - #OkUrl# - #GuaranteeOffered# samt din nyckel för att beräkna MD5".

När jag hämtar index.php från servern, är det inte så att formuläret då fylls i med den informationen som finns i send.php? Kostnaden fylls sedan i formuläret av mig/kunden, men är MD5-hash då redan är beräknad eller ....?

red/ Nu gick vi omlott då jag skrev och inte såg ditt tillägg.

Jag förstår inte vad du menar med att att jag måste inkludera send.php på formulärsidan, för det trodde jag att jag gjorde genom

 <?php
require_once("send.php");
?>

i index.php

Medlem sedan juni 20006 031 inlägg
#5

Som jag skrev i min redigering så kommer det inte fungera som du gör nu.
Du inkluderar send.php (genom din require_once()) och då skapas md5 hashen utan Cost.

Alltså måste du ha ditt formulär som postar till sida 2 där du räknar ut hashen mm och sen postas till payson.

Medlem sedan jan. 2005125 inlägg
#6

Nu blev det mycket för en nybörjar hjärna (dessutom 54 år gammal), för jag hänger inte med förutom att jag förstår att det inte fungerar som jag har det *ler*.

  1. Om inte "require_once()" skall användas, hur kopplar jag index.php mot send.php?

  2. Hur skulle en sida 2 kunna se ut för att för att kunna räkna ut hasn´n?

mvh biggles

Medlem sedan juni 20006 031 inlägg
#7

Det kan se ut något sånt här.

index.php

<form action="send.php" method="post">
Email: <input name="BuyerEmail"><br />
Cost: <input name="Cost"><br/>
<input type="submit" name="submit" value="Send request">
</form>

send.php

<?php 
if(!isset($_POST['submit']))
{
	header("Location: index.php");
	exit;
}

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

$Description = "Description of item or service";
$SellerEmail = "seller@email.com";
$BuyerEmail = $_POST['BuyerEmail'];
$Cost = $_POST['Cost']; //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);
?>

<p>Is this correct?</p>
<p>Email: <?php echo $BuyerEmail; ?><br />
Cost: <?php echo $Cost; ?></p>
<form name="form1" method="post" action="https://www.payson.se/merchant/default.aspx">
	<input type="hidden" name="BuyerEmail" value="<?php echo $BuyerEmail; ?>"> 
	<input type="hidden" name="Cost" value="<?php echo $Cost; ?>">  
	<input type="hidden" name="RefNr" value="<?php echo $RefNr; ?>">  
	<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="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="MD5" value="<?php echo $MD5Hash; ?>"> 
    <input type="hidden" name="GuaranteeOffered" value="<?php echo $GuaranteeOffered; ?>">
    <input type="submit" name="button" id="button" value="Yes">
</form>

Vet inte var du får värdena i $BuyerEmail och $Cost, så jag la dom i formuläret i exemplet.

Medlem sedan jan. 2005125 inlägg
#8

Ahhhaaa, tack Pedda.

Nu börjar jag fatta vad du menar och förstå logiken med sida 2.

Är det möjligt att att lägga den delen av send.php som bara är information typ $AgentID, $Key ... o s v som en egen sida? Jag vill inte skylta med den informationen och skulle helst vilja ha den oåtkomlig för besökaren.

Hur kopplas den extra sidan då till sida 2/send.php i ditt exempel?

mvh biggles

P.S. Värdena från bl a $BuyerEmail och $Cost är uppgifter som kunden själv matar in.

Medlem sedan juni 20006 031 inlägg
#9

Ja, du kan lägga informationen i en egen fil och sen göra include() eller require_once() men det blir i princip samma sak som i mitt exempel.
Kollar dom källkoden så ser dom värdena.

Medlem sedan jan. 2005125 inlägg
#10

Tack Pedda,

Verkar nu som att det fungerar. Kan se informationen som går iväg via källkoden på send.php och får dessutom ett ok från testsidan hos Payson att nu även MD5-hash´n är godkänd. Känns riktigt skitbra (peppar, peppar ta i trä!) *ler*.

Kontentan verkar nu vara att jag med din och fleras hjälp på webforum, lyckats åstadkomma den enkla betalsidan som jag tidigare haft via Samport (hostad sida) och kan jobba vidare via Payson som blir ett billigare men tillräckligt alternativ för mig.

Det enda är olustskänslan är väl att "alla" kan se information som skickas iväg via källkoden typ id #, nycklar m.m. Vet egentligen inte vad någon skulle kunna göra med det i skadligt syfte eller ... är jag för naiv?

Tillönskar alla en skön helg, för nu går jag in till frun och äter en god middag om hon fortfarande vill ha mig *ler*.

Mvh biggles

258 ms totalt · 4 externa anrop · v20260731065814-full.a51de22e
128 ms — deklarationer (db)
0 ms — hämta statistik (cache)
128 ms — hämta tråd, inlägg och bilagor (db)
127 ms — ändringar (db)