仅在会话开始时仅第一次运行PHP



im仅在尚未启动会话时才尝试运行此脚本。用户单击某些选项后,页面重新加载自我。但是Google Analytics(Analytics)的Infor必须仅在会话开始时首次发送。该脚本正在工作,但分析是错误的,因为它在同一会话中发送了几次。

php脚本:

if (session_id() === "") {
    echo time();
    session_start();
    include('ss-ga.class.php');
    $ssga = new ssga( 'UA-10536XXXX-1', 'www.site.com' );
    //Set a pageview
    $ssga->set_page( 'b1.php' );
    $ssga->set_page_title( 'b1' );
    // Send
    $ssga->send();
    $ssga->reset();
}

if(session_id ===") and if(session_status()== php_session_none)

我的怀疑 - 从文档中不清楚 - 使用 session_id to read session ID仅在 session_start调用后起作用。

更好的方法是在首先运行GA代码之后设置会话变量。设置后,将来的页面浏览量会跳过该代码,因为会话值存在。

session_start();
if(!isset($_SESSION['analytics_sent'])) {
    echo time();
    include('ss-ga.class.php');
    $ssga = new ssga( 'UA-10536XXXX-1', 'www.site.com' );
    //Set a pageview
    $ssga->set_page( 'b1.php' );
    $ssga->set_page_title( 'b1' );
    // Send
    $ssga->send();
    $ssga->reset();
    $_SESSION['analytics_sent'] = true;
}

最新更新