2012-10-30 47 views
1

問題分配PHP參數的會話,如果會話爲空或參數是不同

我的客戶都獲得了URL,並在最後一個參數,當他們點擊的URL看起來像這樣

www.website.com?utm_content=1223324 

我想將1223324分配到一個session並在整個網站上運行,直到utm_content的值不同。如果價值不同,我想在整個網站上發佈新的價值。

什麼即時試圖做

我試着去抓住utm_content價值,在直到用戶提交我的聯繫形式攜帶。我將utm_content添加到聯繫人表單提交中,以便找到我。如果用戶點擊不同的值另一個鏈接,我想用新的替換當前utm_content ID,以便新的ID通過接觸形式

我的PHP代碼

$getTrackingCodeCurrentURL = $_GET['utm_content']; 


if(isset($_SESSION['getSSourceId'])){ 


    if($getTrackingCodeCurrentURL != $_SESSION['getSSourceId']) 
    { 
     $_SESSION['getSSourceId'] = $getTrackingCodeCurrentURL; 
     echo "Session NOT the same : " . $_SESSION['getSSourceId']; 
    } 
    else{ 

     echo "Session SET TO same : " . $_SESSION['getSSourceId']; 
    } 

} else { 

    $_SESSION['getSSourceId'] = $getTrackingCodeCurrentURL; 
    echo "Session not set : " . $_SESSION['getSSourceId']; 

} 
遇到我

問題

當訪問者轉到另一個頁面,該getSSourceId不會讓人們在攜帶。我認爲,因爲它將$getTrackingCodeCurrentURL值(當訪問者轉到另一頁時爲NULL)分配給$_SESSION['getSSourceId']。我怎樣才能防止這種情況發生?

+2

把裏面的東西'如果(isset($ _ GET [ '的utm_content'])){' – air4x

+0

感謝堆。這工作! – nasty

回答

2

這是我所需要的

if(isset($_GET['utm_content'])){ 

    $_SESSION['getSSourceId'] = $_GET["utm_content"]; 
    $getTrackingCodeCurrentURL = $_SESSION['getSSourceId'] ; 
    echo "IS SET : ".$getTrackingCodeCurrentURL; 

} else { 

    $getTrackingCodeCurrentURL = $_SESSION['getSSourceId'] ; 
    echo "NOT SET : ".$getTrackingCodeCurrentURL; 

}