将$\u会话数组发送到我的类,并尝试在for loop.php中获取该数组的值
我有一个类,在这个类中,iam使用一个方法通过for循环从会话数组中获取信息。每个方法中的2个for循环用于1.计算项目总数,2。把总价加起来,但两人似乎都没有退货。我使用总金额与来自IPN的mc_总过账值进行核对,如果这些值相等,我计划将销售提交到数据库,因为它已经过验证。对于我希望得到的总价格的方法,我得到0.00返回给我。我想我这里的语法搞错了,这是我要买的类。我遇到的两个问题是gettotalcost()和gettotalitems(),如下所示是我的类将$\u会话数组发送到我的类,并尝试在for loop.php中获取该数组的值,php,paypal-ipn,Php,Paypal Ipn,我有一个类,在这个类中,iam使用一个方法通过for循环从会话数组中获取信息。每个方法中的2个for循环用于1.计算项目总数,2。把总价加起来,但两人似乎都没有退货。我使用总金额与来自IPN的mc_总过账值进行核对,如果这些值相等,我计划将销售提交到数据库,因为它已经过验证。对于我希望得到的总价格的方法,我得到0.00返回给我。我想我这里的语法搞错了,这是我要买的类。我遇到的两个问题是gettotalcost()和gettotalitems(),如下所示是我的类 <?php 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: you@youremail.com" );
mail($myemail, "session vardump ",count($_SESSION['itemnames']) , "From: you@youremail.com" );
}
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;
}
}
?>
提前谢谢你的帮助
我还将这些行添加到我的构造函数中。邮件回复说垃圾堆里什么都没有哦
mail($myemailaddress, "session vardump ", var_dump($_SESSION), "From: you@youremail.com" );
还添加了会话_start() 在构造函数的顶部,它不工作!帮助 好的,我在一个单独的php页面上打印了vardump,它给了我这个
数组(9){[“令牌”]=>string(32)“964885a70512d21933d139663a8fe48a”[“ID”]=>string(19)“XXXXXXXX”[“用户名”]=>string(19)“XXXXXXXXXX”[“密码”]=>string(5)“XXX”[“管理员”]=>string(1)“0”[“设置”]=>string(4)“真实”[“项目名称”=>string(3){[0]=>string(43)“清海岬岛:人与风景”[1]=>string(30)“Naomh Ciaran:Pilgrim Islander”[2]=>string(35)“O Driscolls:过去和现在(2005)”[“数量”=>array(3){[0]=>int(2)[1]=>string(1)“1”[2]=>string(1)“1”}[[price”]=>array(3){[0]=>string(5)“12.73”[1]=>string(5)”23.99”[2]=>string(5)“11.76”}您必须以
会话开始的方式启动会话
在任何事情之前
尝试打印要调试的函数中的numitems和totalcost变量…
好的,答案是,当我离开我的站点处理事务时,IPN不会处理会话变量,所以我必须将它们保存到数据库中,然后如果所有检查都通过我的IPN脚本,我可以将事务标记为p在我的数据库中使用一个唯一的事务号,我将创建一个自定义变量,并将其传递给paypal。如果检查失败,我将发送()购买商品的人使用我将从paypal获得的唯一交易号作为ipn自定义变量删除商品。wow stackoverflow通常比这更有用,也许我的问题有点模糊!您确定在创建类时$\u会话值设置正确并且会话已经开始了?为什么要写“$totalcost$我"及"元;$我“显式地在函数中?@OM函数是我在java中使用的方式。使用这个”count($this->amountofitems)“我正试图计算数组中的项数!会话数组都已创建并在我使用它们填充购物车时正常工作。如果已经创建了会话,我是否必须在类中启动会话?在实例化任何类的对象并在同一类中使用会话之前,u应获得会话started@eoin是否可以添加一个var\u转储($\u会话);在构造函数中,将输出粘贴到此处?我会将其打印到文件中!我需要几分钟才能完成。我现在就试着去做。一分钟前我休息了一下,现在我放在构造器中的邮件没有发送给我,这真的很烦人。我离开paypal网站去做一些处理后,又回到了页面!这可能就是问题所在!我应该在构造函数和脚本中调用session_start吗?!或者可能是因为IPN在paypal页面上运行,而im不会将会话变量返回给我的对象。这里需要帮助我还修复了变量名称上的语法错误。您需要在使用会话变量之前调用会话启动。它可以在任何地方,但在使用会话数据之前
<?php
session_start();
include("purchase.php");
var_dump($_SESSION)
exit;
$purchase = new purchase($...........
?>
<?php
session_start();
include("purchase.php");
var_dump($_SESSION)
exit;
$purchase = new purchase($...........
?>