Jump to content

Recommended Posts

PHP executes in the order you tell it to. If you want the output to appear on a certain spot on the page then you need code at that spot which causes the output. Could simply be a matter of moving the include statement, but like benanamen said you should post your code.

First box of code is the include file, I would like the two echo statements to be between the divs in the second box.

 $api_login = $_SESSION['LOGIN'];
	    $transaction_key = $_SESSION['TRANSKEY']; 
	 
	    $payment = new AuthnetAIM( $api_login, $transaction_key,  true);

	    $payment->setTransaction($creditcard, $expiration, $total, $cvv, $invoice);
	    $payment->setParameter("x_duplicate_window", 180);
	    $payment->setParameter("x_customer_ip", $_SERVER['REMOTE_ADDR']);
	    $payment->setParameter("x_email", $email);
	    $payment->setParameter("x_email_customer", FALSE);
	    $payment->setParameter("x_first_name", 'test');
	    $payment->setParameter("x_last_name", 'hello');
	    $payment->setParameter("x_address", $address);
	    $payment->setParameter("x_city", $city);
	    $payment->setParameter("x_state", $state);
	    $payment->setParameter("x_zip", $zipcode);
	    $payment->setParameter("x_description", $product);

	    $payment->process();
	 
	    if ($payment->isApproved())  {
			// if success, return array
			$return_array['amount'] = $total;
			$return_array['Email'] = $email;

			

			if ( isset( $_POST['anonymous'] ) && $_POST['anonymous']==1) {
				$return_array['anonymous'] = true;
			} else {
				$return_array['first_name'] = $firstname;
				$return_array['last_name'] = $lastname;
			}
			$return_array['transaction_nonce'] = $_POST['n'];
			$return_array['success'] = true;

	    } else if ($payment->isDeclined()) {
	        // Get reason for the decline from the bank. This always says,
	        // "This credit card has been declined". Not very useful.
	        $reason = $payment->getResponseText();	 
	        $return_array['error_msg'] = __( 'This credit card has been declined.  Please use another form of payment.', 'pfund' );
	    } else if ($payment->isError()) {	 
	        // Capture a detailed error message. No need to refer to the manual
	        // with this one as it tells you everything the manual does.
	        $return_array['error_msg'] =  $payment->getResponseMessage();
	 
	        // We can tell what kind of error it is and handle it appropriately.
	        if ($payment->isConfigError()) {
	            // We misconfigured something on our end.
	            //$return_array['error_msg'] .= " Please notify the webmaster of this error.";
	        } else if ($payment->isTempError()) {
	            // Some kind of temporary error on Authorize.Net's end. 
	            // It should work properly "soon".
	            $return_array['error_msg'] .= __( '  Please try your donation again.', 'pfund' );
	        } else {
	            // All other errors.
	        }
	 
	    }
	} catch (AuthnetAIMException $e) {
	    $return_array['error_msg'] ="There was an error processing the transaction. Please report this CATCH error to administration.<br><br>Error: " . $e->__toString();
	}
	echo "<br /><div align='left'>Your changes have been saved and your card charged $<font color='#ff0000'>" .$return_array['amount']."</font></div>";

    echo "<br /><div align='left'>Error message of some type$<font color='#ff0000'>" .$return_array['error_msg']."</font></div>";



<div id="wrapper">

        <div id="header-adt" class="content-width">
            <div data-oas-id="x01" data-oas-breakpoint="desktop" class="oas-ad desk tablet-hidden mobile-hidden"></div>
            <div data-oas-id="x01" data-oas-breakpoint="tablet" class="oas-ad tablet large-hidden mobile-hidden"></div>
            <div data-oas-id="x01" data-oas-breakpoint="mobile" class="oas-ad mobile"></div>
        </div>

 <div id="content">

            <div id="main">


<?php 


//display errors or display success message 

Thanks for taking a look :)

You haven't shown how and where you are including the code. Nevertheless, change those echos to variables, i.e $var1, $var2 and then echo those variables where you want them AFTER the include file line wherever that is.

 

 

Your include code is bad. You're missing something, like the Try.

Edited by benanamen

I just cant get this to work.

 

So I change the echo to a variable on the include page. but when I place the variable on the page where I need it to go, it doesn't show and I've been googling for hours.

 

editListing.php page has the include payment.php, I created $var1 = $return_array['amount']; on the included payment.php, but when I try placing the echo $var1 on the editListing.php it doesn't work, what am I missing?

 

Thanks.

This is the include page. payment.php

 

I added the $var at the end of the code box.

require('../authNet/AuthnetAIM.class.php');
    
    $queryInvoiceId = mysql_query("INSERT INTO invoices (id) VALUES(NULL)");
    $invoiceId      = mysql_insert_id();
	//echo $invoiceId."<br>";
    $invoiceId      = "DIR-" . sprintf('%1$09d', $invoiceId);
    //echo $invoiceId;die();
    //define variables to send
    $cardNumber     = strip_tags($_POST["CCnum"]);
    $expirationDate = strip_tags($_POST['CCexpireMonth']) . "-" . strip_tags($_POST['CCexpireYear']);
    //$amount = $priceToCharge; //sent above
    $cvv            = strip_tags($_POST['CC3digit']);
    
    $email       = $_SESSION['listContactEmail'];
    $company     = $_SESSION['listCompName'];
    $company     = str_replace("&", " ", $company);
    $company     = str_replace("'", " ", $company);
    $firstName   = $_SESSION['contact_first_name'];
    $firstName   = str_replace("'", " ", $firstName);
   // $firstName   = htmlspecialchars($firstName, ENT_QUOTES);
    $lastName    = $_SESSION['contact_last_name'];
    $lastName    = str_replace("'", " ", $lastName);
   // $lastName    = htmlspecialchars($lastName, ENT_QUOTES);
    $address     = $_SESSION['listAdd1'];
    $city        = $_SESSION['listCity'];
    $state       = $_SESSION['listState'];
    $zip         = $_SESSION['listZip'];
    $country     = $_SESSION['listCountry'];
    $description = "Directory Listing Payment - Listing: " . $company;
    
    /////////////////code
	
	try {
		
	    $email   = $email;
	    $product = 'Directory listing RPN';
	    $firstname =  $firstname;
	    $lastname  = $lastName;
	    $address   = $address;
	    $city      = $city ;
	    $state     = $state;
	    $zipcode   = $zip;
	 	    
	    $creditcard = $cardNumber;
	    $expiration = $expirationDate;
	    $total      = $amount;
	    $cvv        = $cvv;
	    $invoice    = $invoiceId  ;	    
	    
	    
	    $api_login = $_SESSION['LOGIN'];
	    $transaction_key = $_SESSION['TRANSKEY']; 
	 
	    $payment = new AuthnetAIM( $api_login, $transaction_key,  true);

	    $payment->setTransaction($creditcard, $expiration, $total, $cvv, $invoice);
	    $payment->setParameter("x_duplicate_window", 180);
	    $payment->setParameter("x_customer_ip", $_SERVER['REMOTE_ADDR']);
	    $payment->setParameter("x_email", $email);
	    $payment->setParameter("x_email_customer", FALSE);
	    $payment->setParameter("x_first_name", 'test');
	    $payment->setParameter("x_last_name", 'hello');
	    $payment->setParameter("x_address", $address);
	    $payment->setParameter("x_city", $city);
	    $payment->setParameter("x_state", $state);
	    $payment->setParameter("x_zip", $zipcode);
	    $payment->setParameter("x_description", $product);

	    $payment->process();
	 
	    if ($payment->isApproved())  {
			// if success, return array
			$return_array['amount'] = $total;
			$return_array['Email'] = $email;

			

			if ( isset( $_POST['anonymous'] ) && $_POST['anonymous']==1) {
				$return_array['anonymous'] = true;
			} else {
				$return_array['first_name'] = $firstname;
				$return_array['last_name'] = $lastname;
			}
			$return_array['transaction_nonce'] = $_POST['n'];
			$return_array['success'] = true;

	    } else if ($payment->isDeclined()) {
	        // Get reason for the decline from the bank. This always says,
	        // "This credit card has been declined". Not very useful.
	        $reason = $payment->getResponseText();	 
	        $return_array['error_msg'] = __( 'This credit card has been declined.  Please use another form of payment.', 'pfund' );
	    } else if ($payment->isError()) {	 
	        // Capture a detailed error message. No need to refer to the manual
	        // with this one as it tells you everything the manual does.
	        $return_array['error_msg'] =  $payment->getResponseMessage();
	 
	        // We can tell what kind of error it is and handle it appropriately.
	        if ($payment->isConfigError()) {
	            // We misconfigured something on our end.
	            //$return_array['error_msg'] .= " Please notify the webmaster of this error.";
	        } else if ($payment->isTempError()) {
	            // Some kind of temporary error on Authorize.Net's end. 
	            // It should work properly "soon".
	            $return_array['error_msg'] .= __( '  Please try your donation again.', 'pfund' );
	        } else {
	            // All other errors.
	        }
	 
	    }
	} catch (AuthnetAIMException $e) {
	    $return_array['error_msg'] ="There was an error processing the transaction. Please report this CATCH error to administration.<br><br>Error: " . $e->__toString();
	}
	
	$var1 = $return_array['amount'];
	

This is the editListing.php page where I have tried to echo the var. I have tried it in several places on the editListing.php page.

<div id="wrapper">

        <div id="header-adt" class="content-width">
            <div data-oas-id="x01" data-oas-breakpoint="desktop" class="oas-ad desk tablet-hidden mobile-hidden"></div>
            <div data-oas-id="x01" data-oas-breakpoint="tablet" class="oas-ad tablet large-hidden mobile-hidden"></div>
            <div data-oas-id="x01" data-oas-breakpoint="mobile" class="oas-ad mobile"></div>
        </div>

 <div id="content">

            <div id="main">


<?php 
 
echo "$var1";

//display errors or display success message 
if(isset($_POST['saveListing'])){ 

  if($_POST['payment']=='creditcard'){
    echo "<br /><br /><div align='center'><font color='#ff0000'>Changes saved and your credit card has been charged   ".'$' .$mybillingamount."</font></div>\n";
}
  elseif($_POST['payment']=='check'){
    echo "<br /><br /><div align='center'><font color='#ff0000'>Changes saved, payment by check   ".'$' .$mybillingamount."</font></div>\n";
}
else{echo "<br /><br /><div align='center'><font color='#ff0000'>Changes saved, but must be approved by the administrator</font></div>\n";}

Thanks for looking :)

So hard to make any sense of this. I'm assuming that the line "echo $var1" is the line in question. And that it is not showing up in 'main' div area.

 

Question - why are you doing all this output when you haven't received the rest of the POST data fields? Seems backwards to be worrying about your output when you haven't even analyzed the input yet.

 

Good practice says to separate the bulk of your html from your php. Same for the JS code too. Grab all the inputs, work with them, build the dynamic output into php vars and THEN do the output of your static html (doctype, metas, head, scripts,styles and body tags) and then place those php vars where they need to be, ALL at the end of the script. First things first and last things last. Makes much more sense logically as you read thru the script and is much easier to maintain down the road.

 

PS - you should really learn some css and get all that outdated styling out of your html tags.

This thread is more than a year old. Please don't revive it unless you have something important to add.

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.