【问题标题】:CodeIgniter flashdata durationCodeIgniter flashdata 持续时间
【发布时间】:2017-05-08 16:49:43
【问题描述】:

我有一个关于 CodeIgniter flashdata 持续时间的问题。该问题与电子商务和通过 Facebook Pixel 和 Google Analytics 注册事件有关。

目前我正在使用一个变量,假设它被称为示例

$this->session->flashdata('purchase_total');

所以,当我到达 'purchase-finished' 部分时,我有两个事件。

第一个事件(在标题视图中)

fbq('track', 'Purchase', {
    value: '<?php echo $this->session->flashdata('purchase_total'); ?>',
    currency: 'MXN'
});

第二个事件(在页脚视图中)

ga('ecommerce:addTransaction', {
    'id': '<?php echo $this->session->flashdata('id_purchase'); ?>',             
    'affiliation': 'Printome',
    'revenue': '<?php echo $this->session->flashdata('purchase_total'); ?>',
    'shipping': '<?php echo $this->session->flashdata('tracking_shipping'); ?>',
    'tax': '<?php echo $this->session->flashdata('tax'); ?>',
    'currency': 'MXN'
});
ga('ecommerce:send');

现在,purchase_total 在 Facebook 上已正确注册,但在 Analytics 上,交易已注册,但没有 purchase_total。

我检查了CodeIgniter Session Library's Documentation,它说 flashdata 可用于一个请求,然后被清除。

问题是,在这种情况下,我不确定请求是否会通过调用$this-&gt;session-&gt;flashdata('purchase_total') 或刷新页面来表示。

【问题讨论】:

  • flashdata 仅适用于一页加载。这意味着如果您刷新或重定向页面,它将被清除。 它是一种临时数据存储方法
  • 那么,如果我在同一个页面加载中调用它两次,它应该可以毫无问题地恢复正确的数据?
  • 没有问题,您可以使用它。但是,如果该页面转到另一个页面,那么它将不会
  • @AbdullaNilam 你为什么将 CodeIgniter 编辑为 CodeIgniter ??
  • 为什么有什么问题?

标签: php facebook codeigniter session google-analytics


【解决方案1】:

在你的情况下,我建议使用Tempdata,它可以保持有限的时间(可以设置)


闪存数据

可以保存数据直到当前页面刷新/重新加载。一旦移动到另一个页面,Flashdata 就会被销毁。它可以保持N次但在当前页面刷新时销毁。


临时数据

这超出了FlashData。这可以保存数据多次重定向以及 N 次。但这不像会话。就像会话一样。

语法:$this-&gt;session-&gt;mark_as_temp('item', 300);


Tempdata 和 Flashdata 之间的差异

       Flashdata                                               TempData
1. Short Time                                       Can hold for Bit long
2. automatically destroyed when page refreshed      Can hold until expiration time reaches
3. Page reload not allowed                          Can Reload or redirect 
4. Flashdata name and Value only required           Tempdata name, Value only and expiry time Required 

链接

  1. Tempdata - codeigniter.com
  2. Flashdata- codeigniter.com

【讨论】:

  • 我真的不需要它在重新加载后保留,这就是我使用 flashdata 的原因。我以为它在使用一次后就会被清除,但它显示正常。我做了一个测试购买来显示我使用的数据,结果我得到了这个:fbq('track', 'Purchase', { value: '247.2', currency: 'MXN' }); ga('ecommerce:addTransaction', { 'id': '58', 'affiliation': 'Printome', 'revenue': '247.2', 'shipping': '99', 'tax': '39.552', 'currency': 'MXN' }); ga('ecommerce:send');
  • 问题是我的 Google Analytics 没有记录这些数字,我不确定是小数有问题,还是金额有问题。它记录交易,但不记录收入。
  • 我还没有找到导致它的原因,但它目前正在工作@Abdulla Nilam
猜你喜欢
  • 1970-01-01
  • 2013-07-28
  • 1970-01-01
  • 2016-03-03
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-06-20
相关资源
最近更新 更多