Opencart会话变量错误

时间:2013-07-27 18:31:03

标签: php session variables opencart

我在通过会话发送数据时遇到问题,因为我在validate()函数下的controller / checkout / shipping_address.php中定义变量时遇到了未定义变量的错误。 (结帐/ shipping_address /验证)。

$this->session->data['ship_date'] = $this->request->post['ship_date']; //<- line 102

在控制器/结帐/ shipping_method

$ship_date = $this->session->data['ship_date'];
if(empty($ship_date)) echo "var empty";
$ship_date = explode("-", $ship_date);
$ship_date = $ship_date[0] . "/" . $ship_date[1] . "/" . $ship_date[2];

然后我做

$quote = $this->{'model_shipping_' . $result['code']}->getQuote($shipping_address, $ship_date); 

同样是的,在model / shipping / fedex.php中我允许使用$ ship_date参数。然后我得到了。

  

无效的JSON:通知:未定义的索引:ship_date in    /var/www/catalog/controller/checkout/shipping_address.php on   line 102 [] parsererror 注意:未定义的索引:   ship_date in    /var/www/catalog/controller/checkout/shipping_address.php on    102 []

2 个答案:

答案 0 :(得分:1)

您应该调试数组$this->session->data$this->request->post

您看到这些错误的原因是ship_date$this->session->data中没有索引$this->request->post。所以你得到Notice: Undefined index:

由于打印的通知,您之后输出的json无效。

答案 1 :(得分:1)

实际上,OpenCart只通过JSON进行通话。所以添加它会有所帮助。

$JSONarray = array("date" => $this->request->post['ship_date']);
$this->session->data['ship_date'] = json_encode($JSONarray);

如果您想使用它,

$JSONarray = $this->session->data['ship_date'];
$arr = json_decode($JSONarray, TRUE);
$Value = $arr['ship_date'];

我们必须制作数据JSON然后发送