2017-09-15 80 views
0

即時通訊只會在會話尚未啓動的情況下試圖讓此腳本運行。該頁面在用戶點擊某些選項後自動重新加載。 但是,谷歌分析的信息必須在會話開始時第一次發送。 該腳本正在工作,但分析錯誤,因爲它發送了幾次相同的會話。僅在會話開始時第一次運行php

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 === 「」)如果(session_status()== PHP_SESSION_NONE)

+0

創建一個變量,怎麼做,如果(session_started = 'Y'!){在session_start()...做的東西...... session_started = 'Y';}的[檢查PHP會議早已 – clearshot66

+0

可能的複製開始](https://stackoverflow.com/questions/6249707/check-if-php-session-has-already-started) – Eric

回答

0

我懷疑 - 這不是從明確文檔 - 使用session_id讀取會話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; 
} 
相關問題