2013-10-22 4 views
5

Wir verwenden GA für die Verfolgung und einen Teil der Verfolgung umfasst Speicherung des __utmz-Cookie-Wertes in unserer Datenbank. Ich habe ein Problem zu verstehen, warum CF 10 den __utmz-Cookie nicht parsen kann.Nicht analysierbar __utmz cookie

CF10 analysiert den Wert von __utmz cookie nicht oder ruft ihn nicht richtig ab. Oder nur irgendeinen Cookie-Wert, der ein 'equal (=)' -Zeichen als CFGLOBALS enthält. Hier

ist der Screenshot der Ausgabe (CFDUMP von PLäTZCHEN Umfang verwenden) -

Was sollte es aussehen -

Proper Google Analytic cookie read

Was gesucht wird, wie -

Improper Google Analytic cookie read

Serverkonfiguration: CF1 0, IIS 7.5, Win 2k8

+0

Hat Ihre Domain Zugriff auf die Cookies, die von (und vermutlich _on_) der GA-Domain gesetzt wurden? – duncan

+0

@duncan ja. Alle anderen Cookies sind in Ordnung. Dieser hat alleine das Problem. – Sanjeev

Antwort

1

Ok! Ich habe den Weg gefunden, dieses Problem zu mildern. Mithilfe der GetHttpRequestData() -Methode.

<cfscript>  
    _cookie = GetHttpRequestData().headers.cookie; 
</cfscript> 

Dies wird eine zurückgeben; Begrenzte Liste von Cookie-Werten. Ich habe regEx verwendet, um den __utmz-Wert auszuwählen, den ich brauchte.

0

Ich lief gerade in dieses Problem. Ein Code, der in CF8 funktionierte, funktionierte nicht mehr in CF10. Ich habe diese Funktion erstellt, um den rohen Cookie-Wert zu erhalten:

<cffunction name="GetRawCookie" output="false" returntype="string"> 
    <cfargument name="cookieName" type="string" required="true"> 
    <cfset local.cookies = GetHttpRequestData().headers.cookie> 
    <cfset local.cookieValue = ""> 
    <cfset local.match = reFindNoCase("(?:^|;)\s*" & arguments.cookieName & "=([^;]+)", local.cookies, 1, true)> 
    <cfif local.match.pos[1] gt 0> 
     <cfset local.cookieValue = mid(local.cookies, local.match.pos[2], local.match.len[2])> 
    </cfif> 
    <cfreturn local.cookieValue> 
</cffunction>