Avatar billede tanzaweb Nybegynder
26. december 2006 - 23:50 Der er 9 kommentarer og
1 løsning

Undefined variable

Jeg er ved at forsøge at sætte en betalings side op med Dandomains betalings gateway, og får denne fejl:

Notice: Undefined variable: MerchantContinue in d:\web\ent4you.dk\ent4you.dk\Shop_test\edankort2.php on line 46

Notice: Undefined variable: MerchantContinue in d:\web\ent4you.dk\ent4you.dk\Shop_test\edankort2.php on line 46

for deres edankort system, og har prøvet flere ting for at få det væk, men intet hjælper er der nogen af jer der evt. har en løsning på problemet?

koden ser således ud:

if(isset($_REQUEST["MerchantContinue"]) || $MerchantContinue == '1'  || $MerchantContinue > '0' ) {

Originalt ser den således ud:
if($MerchantContinue == '1'  || $MerchantContinue > '0' || isset($_REQUEST["MerchantContinue"])) {

Håber der er nogen som er vågne i forhold til mig :-)
Avatar billede erikjacobsen Ekspert
26. december 2006 - 23:53 #1
Det ska' vel bare være

if(isset($_REQUEST["MerchantContinue"]) || $_REQUEST["MerchantContinue"] == '1'  || $_REQUEST["MerchantContinue"] > '0' ) {

eller rettere bruge $_POST hvis det kommer fra en form med method="post"
Avatar billede erikjacobsen Ekspert
26. december 2006 - 23:54 #2
Men er du sikker på den linie ellers er korrekt ?  Den første "||" ser altså ikke rigtig ud...
Avatar billede intenz Novice
27. december 2006 - 00:01 #3
Din if sætning er i hvert fald mærkeligt, den modsiger sig selv.
Du laver (skriver det lige på dansk)
hvis $_REQUEST["MerchantContinue"] er sat, gør et eller anden.
Eller hvis $_REQUEST["MerchantContinue"] = 1, gør et eller andet
Eller hvis $_REQUEST["MerchantContinue"] > 0, gør et eller andet.

Så hvis den er sat vil den gøre det ligemeget om den er 1 eller større end 0. Så de to sidste check er ligegyldige ligemeget hvad, som den ser ud nu.
Hvis den skal opfylde alle krav skal du bruge && i stedet for ||
Avatar billede tanzaweb Nybegynder
27. december 2006 - 00:25 #4
Jeg er ikke helt sikker, men dandomain sætter linje til denne:
if($MerchantContinue == '1'  || $MerchantContinue > '0' || isset($_REQUEST["MerchantContinue"])) {

og ellers er de ikke til meget hjælp for de ved nærmest ikke hvad der kommer videre efter denne side, eller andet, fik bare et svar der hed jamen det er jo ikke vigtigt?

Men det ser nu imervæk lidt dumt ud for min venindes kunder hvis der står en fejl på siden ikke videre betrykkende.
Avatar billede coderdk Praktikant
27. december 2006 - 00:59 #5
For mig ser det ud som om den burde se sådan ud:

if ( isset( $_REQUEST["MerchantContinue"] ) && ( $_REQUEST["MerchantContinue"] == '1'  || $_REQUEST["MerchantContinue"] > '0' ) ) {
Avatar billede coderdk Praktikant
27. december 2006 - 01:00 #6
I virkeligheden kan den vel koges ned til:

if ( isset( $_REQUEST["MerchantContinue"] ) && $_REQUEST["MerchantContinue"] > '0' ) {
Avatar billede intenz Novice
28. december 2006 - 13:15 #7
Hvis du stadig ikke har fået fejlen væk, kan du vel bare lave.
$MerchantContinue = $_REQUEST["MerchantContinue"];

Og så ændre linjen til:
if ($MerchantContinue != "" ) && ( $MerchantContinue > '0' ) {

Ved ikke om du bruger den linje, men fremgangsmåden er den samme ligemeget hvilken du bruger. Du skal bare gemme variablen inden du kører if sætningen.
Avatar billede tanzaweb Nybegynder
28. december 2006 - 23:44 #8
Jeg prøver den lige, men får den nok ikke prøvet af før imorgen fredag.
Avatar billede tanzaweb Nybegynder
28. december 2006 - 23:48 #9
Hele koden ser således ud, men det er lidt træls med dem, at de har et forum for deres webshop men ikke for deres betalings system.

<?

$bDebug = true; // Skal sættes til false ved normal brug. Hvis den er true. Bruges kun i testmode.

// Link til EDankort logo
$sLogoURI = "http://www.mit.dk/Images/edan-xs.gif"; //Læg Deres eDankort logo i f.eks. /images på Deres webhotel.
// Evt. stylesheet ( $sStylesheet = "/styles.css";)

$sPurchaseDate = date("ymd H:i:s");



// Setup order-specific details
// Sætter session for ordrenummer og beløb
  session_start();
  //session_register( "Orderid", "Amountp" );
  $HTTP_SESSION_VARS["OrderID"] = $HTTP_SESSION_VARS["Orderid"];
  $HTTP_SESSION_VARS["Amount"] = $HTTP_SESSION_VARS["Amountp"]; //Decimal separator, brug "," f.eks. 1,00


$sInputType = "hidden"; // Standard input felter sættes "hidden"
if($bDebug) {
  $sInputType = "text"; // Text felter sættes til "Text" ved test
}

// Output page head
header("Expires: Mon, 26 Jul 1997 05:00:00 GMT");             
header("Last-Modified: " . gmdate("D, d M Y H:i:s") . " GMT"); 
header("Cache-Control: no-store, no-cache, must-revalidate");  // HTTP/1.1
header("Cache-Control: post-check=0, pre-check=0", false);
header("Pragma: no-cache");


include_once ("../head.php");
?>


<!--
<title>
  eDankort
</title>
            <!-- <link rel="stylesheet" type="text/css" href="<?= $sStylesheet ?>" /> -->
</head>


  <body> -->
<?
if ( isset( $_REQUEST["MerchantContinue"] ) && $_REQUEST["MerchantContinue"] > '0' ) {
       
   
    // Tager højde for "l" og "L" i AuthlifeCycle
    if (isset($HTTP_POST_VARS["AuthlifeCycle"]))        $AuthLifeCycle = $HTTP_POST_VARS["AuthlifeCycle"];
    if (isset($HTTP_POST_VARS["AuthLifeCycle"]))        $AuthLifeCycle = $HTTP_POST_VARS["AuthLifeCycle"];
       
   
    ?>
      <form method="POST" action="https://pay.dandomain.dk/securecapture.asp" name="Form1">
        <input type="<?= $sInputType ?>" name="MerchantNumber" title="MerchantNumber" value="1234567" > <!-- Indsæt forretningsnummer -->
          <input type="<?= $sInputType ?>" name="OrderID" title="OrderID" value="<?= $HTTP_POST_VARS[OrderNo]; ?>" >
        <input type="<?= $sInputType ?>" name="Amount" title="Amount" value="<?= $HTTP_SESSION_VARS["Amount"]; ?>" >
        <input type="<?= $sInputType ?>" name="CardNumber" title="CardNumber" value="<?= $HTTP_POST_VARS["PAN"]; ?>" >
        <input type="<?= $sInputType ?>" name="CurrencyID" title="CurrencyID" value="208" >
        <input type="<?= $sInputType ?>" name="OKURL" title="OKURL" value="http://www.mit.dk/Shop_test/dankort_ok.php" > <!-- Returnere hvis indbetalingen gik godt -->
        <input type="<?= $sInputType ?>" name="FAILURL" title="FAILURL" value="http://www.mit.dk/Shop_test/fail.php" > <!-- Returnere hvis inbetalingen fejlede -->
        <input type="<?= $sInputType ?>" name="ExpireMonth"  value="00" >
        <input type="<?= $sInputType ?>" name="ExpireYear" title="ExpireYear" value="00" >
        <input type="<?= $sInputType ?>" name="PostingID"  title="PostingID" value="<?= $HTTP_POST_VARS["PostingID"]; ?>" >
        <input type="<?= $sInputType ?>" name="KeyLabel"  title="KeyLabel" value="<?= $HTTP_POST_VARS["KeyLabel"]; ?>" >
        <input type="<?= $sInputType ?>" name="SigISO9796"  title="SigISO9796" value="<?= $HTTP_POST_VARS["SignatureISO9796"]; ?>" >
        <input type="<?= $sInputType ?>" name="AuthlifeCycle" title="AuthlifeCycle" value="<?= $AuthLifeCycle; ?>" >
        <input type="<?= $sInputType ?>" name="PayType"  title="PayType" value="1" >
        <input type="submit" value="send" />
      </form>
     
      <script type="text/javascript">
        document.Form1.submit();
      </script>
     
      <?
      exit();
      ?>
<?
}

if (!isset($_REQUEST["MerchantContinue"]) || isset($_REQUEST["MerchantDecline"])) {
 
?>
      <script type="text/javascript">
     
        function eDankortRouter(form) {
          var oHeight = 0;
          var oWidth = 0;
          var iHeight = 300;
          var iWidth = 350;
          var iLeft = 0
          var iTop = 0;
          oHeight = top.window.screen.availHeight;
          oWidth = top.window.screen.availWidth;
          if(oHeight > 3*iHeight)    iHeight = oHeight/3;
          if(oWidth > 3*iWidth)    iWidth = oWidth/3;
          if(oWidth > iWidth)        iLeft = (oWidth - iWidth)/2;
          if(oHeight > iHeight)    iTop = (oHeight - iHeight)/2;
         
          var oWindow = window.open('','router','scrollbars=yes,toolbar=no,directories=no,menubar=no,resizable=no,status=yes,width=' + iWidth + ',height=' + iHeight + ',left='+ iLeft + ',top=' +iTop +'dependent=yes');
          form.target = 'router';
          form.submit();
          oWindow.focus();
      }
      </script>
    <form method="POST" action="https://www.authentication-router.pbs.dk/RouterWebApp/servlet/EDKTransfer" name="Form1" target="_top">
      <input type="<?= $sInputType ?>" name="MerchantContinueURL" title="MerchantContinueURL" value="http://www.mit.dk/Shop_test/dankort_ok.php".getenv("SERVER_NAME")."/edankort2.php?MerchantContinue=1" >
      <input type="<?= $sInputType ?>" name="MerchantDeclineURL" title="MerchantDeclineURL" value="http://www.mit.dk/Shop_test/fail.php".getenv("SERVER_NAME")."/edankort2.php?MerchantDecline=1" >
      <input type="<?= $sInputType ?>" name="MerchantTitle" title="MerchantTitle" value="mit" /> <!-- Indtast Deres Firmanavn her -->
      <input type="<?= $sInputType ?>" name="OrderNo" title="OrderNo" value="<?= $HTTP_SESSION_VARS["OrderID"]; ?>" >
      <input type="<?= $sInputType ?>" name="MerchantAccount" title="MerhcantAccount" value="1234567" > <!-- Indsæt forretningsnummer -->
      <input type="<?= $sInputType ?>" name="AmountTrn" title="AmountTrn" value="<?= FormatTrn($HTTP_SESSION_VARS["Amount"]); ?>" >
      <input type="<?= $sInputType ?>" name="CurrencyTrn" title="CurrencyTrn" value="DKK" >
      <input type="<?= $sInputType ?>" name="TestFlg" title="TestFlg" value="P" >
      <input type="<?= $sInputType ?>" name="MerchantCountry" title="MerchantCountry" value="208" >
      <input type="<?= $sInputType ?>" name="MerchantUrl" title="MerchantUrl" value="http://www.ent4you.dk" > <!-- Indsæt Deres www adresse -->
      <input type="<?= $sInputType ?>" name="MerchantGmtOffset" title="MerchantGmtOffset" value="1" >
      <input type="<?= $sInputType ?>" name="MerchantBrands" title="MerchantBrands" value="" >
      <input type="<?= $sInputType ?>" name="PurchaseDate" title="PurchaseDate" value="<?= $sPurchaseDate; ?>" >
      <input type="<?= $sInputType ?>" name="PurchaseAmount" title="PurchaseAmount" value="DKK <?= $HTTP_SESSION_VARS["Amount"];?>" >
      <input type="<?= $sInputType ?>" name="AuthLifeCycle" title="AuthLifeCycle" value="114" >
    </form>
    <p>
      <a href="java script:return false;" onClick="eDankortRouter(document.Form1);" >
        <img src="<?= $sLogoURI ?>" title="Forsøg eDankort-betaling igen" border="0" /></a>
    </p>
    <p>
      E-dankort betalingsvinduet åbnes i et nyt browser vindue.
      Hvis De ikke kan se dette vindue kan de trykke på E-dankort logoet.
    </p>
    <p>
      Bemærk! Hvis De benytter en pop-up stopper skal De holde CTRL-tasten nede mens De trykker på logoet.
    </p>
<? if (isset($_REQUEST["MerchantDecline"])) { ?>
  <p>
    <b>FEJL! E-Dankort transaktionen blev ikke godkendt eller annulleret!</b>
  </p>
  <p>
      <a href="java script:return false;" onClick="eDankortRouter(document.Form1);" >
        Tryk her for at forsøge igen</a>.
    </p>
<? } else { ?>
      <script type="text/javascript">
        eDankortRouter(document.Form1);
      </script>
<? }
}
?>
<!-- </body>
</html> -->

<?
include_once ("../footer.php");

/**
* @return string
* @param string $sAmount
* @desc Format amount as twelve digits, with the last two being decimals (no decimal separator)
*/
function FormatTrn($sAmount) {
        $tempAmount = str_pad(str_replace(".", "", $sAmount), 12, "0", STR_PAD_LEFT);
        $tempAmount = str_pad(str_replace(",", "", $tempAmount), 12, "0", STR_PAD_LEFT);
  return $tempAmount;
}

?>
Avatar billede tanzaweb Nybegynder
13. april 2011 - 15:36 #10
lukker sporgsmaal
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester

Seneste spørgsmål Seneste aktivitet
I går 10:21 Ny printer, men hvilken Af mort1 i Printere
13/0819:41 USB på Linux Af Uvanga i Linux
12/0818:26 Hvilken type mus Af mort1 i PC
11/0813:21 ms Forms Af leahcim i Andet software
10/0821:30 Blokeret på Snapchat? Af LineP i Chat & Messaging