i have a class which
in which iam using a method to get information from a session array via a
for loop the 2
for loops
in each method are used 1.to count total amount of items , and 2. to add up the total price but neither seem to be returning anything. im using the total amount to check it against the mc_gross posted value from an IPN and if the values are equal i plan to commit the sale to a database as it has been verified.
for the method where im looking to get the total price im getting 0.00 returned to me. i think ive got the syntax wrong here somehow here is my class
for purchase the two methods iam having trouble with are the gettotalcost() and gettotalitems() shown below is my class.
<?php
class purchase {
private $itemnames; // from session array
private $amountofitems; // from session array
private $itemcost; //session array
private $saleid; //posted transaction id value to be used
in sale and sale item tables
private $orderdate; //get current date time to be entered as datetime
in sale table
private $lastname; //posted from ipn
private $firstname; //posted from ipn
private $emailadd; //uses sessionarray value
public function __construct($saleid,$firstname,$lastname)
{
$this->itemnames = $_SESSION['itemnames'];
$this->amountofitems =$_SESSION['quantity'];
$this->itemcost =$_SESSION['price'];
$this->saleid = $saleid;
$this->firstname = $firstname;
$this->lastname = $lastname;
$this->emailadd = $SESSION['username'];
mail($myemail, "session vardump ", echo var_dump($_SESSION), "From:
[email protected]" );
mail($myemail, "session vardump ",count($_SESSION['itemnames']) , "From:
[email protected]" );
}
public function commit()
{
$databaseinst = database::getinstance();
$databaseinst->connect();
$numrows = $databaseinst->querydb($query);
//to be completed
}
public function gettotalitems()
{
$numitems;
$i;
for($i=0; $i < count($this->amountofitems);$i++)
{
$numitems += (int) $this->amountofitems[$i];
}
return $numitems;
}
public function gettotalcost()
{
$totalcost;
$i;
for($i=0; $i < count($this->amountofitems);$i++)
{
$numitems = (int) $this->amountofitems[$i];
$costofitem =doubleval($this->itemcost [$i]);
$totalcost += $numitems * $costofitem;
}
return $totalcost;
}
}
?>
and here is where i create an instance of the class and attempt to use it.
include("purchase.php");
$purchase = new purchase($_POST['txn_id'],$_POST['first_name'],$_POST['last_name']);
$fullamount = $purchase->gettotalcost();
$fullAmount = number_format($fullAmount, 2);
$grossAmount = $_POST['mc_gross'];
if ($fullAmount != $grossAmount) {
$message = "Possible Price Jack attempt! the amount the customer payed is : " . $grossAmount .
" which is not equal to the full amount. the price of the products combined is " . $fullAmount. "
the transaction number
for which is " . $_POST['txn_id'] . "\n\n\n$req";
mail("XXXXXXXXXXXX", "Price Jack attempt ", $message, "From:
[email protected]" );
exit(); // exit
}
thanks
for the help
in advance!
ive also added these lines to my constructor. the mail returns that there is nothing
in the vardump uh oh!
mail($myemailaddress, "session vardump ", var_dump($_SESSION), "From:
[email protected]" );
also added
session_start();
at the top of the constructor and it dont work! help