It is unlikely (though not impossible) that we would take action just for analytics cookies.and
Just because analytics cookies are caught by this law doesn’t mean a strict opt-in is necessary
I know it's vague wording and there's still a chance of a fine, but it seems like they're targeting the worst offenders of tracking cookies only.
As we understand it, Google Analytics is a third party service offered by Google that generates statistics about the visitors to a website. In our view, Google Analytics is likely to be captured by Regulation 6. However, we recognise that Google Analytics is a comparatively less privacy intrusive technology. You may be interested to learn that the ICO will be issuing some further guidance before the grace period expires on 26 May 2012. I understand the guidance will provide some additional clarification on this matter.
function clearCookie(name, domain, path){
try {
function Get_Cookie( check_name ) {
// first we'll split this cookie up into name/value pairs
// note: document.cookie only returns name=value, not the other components
var a_all_cookies = document.cookie.split(';'),
a_temp_cookie = '',
cookie_name = '',
cookie_value = '',
b_cookie_found = false;
for ( i = 0; i < a_all_cookies.length; i++ ) {
// now we'll split apart each name=value pair
a_temp_cookie = a_all_cookies[i].split( '=' );
// and trim left/right whitespace while we're at it
cookie_name = a_temp_cookie[0].replace(/^\s+|\s+$/g, '');
// if the extracted name matches passed check_name
if ( cookie_name == check_name ) {
b_cookie_found = true;
// we need to handle case where cookie has no value but exists (no = sign, that is):
if ( a_temp_cookie.length > 1 ) {
cookie_value = unescape( a_temp_cookie[1].replace(/^\s+|\s+$/g, '') );
}
// note that in cases where cookie is initialized but no value, null is returned
return cookie_value;
break;
}
a_temp_cookie = null;
cookie_name = '';
}
if ( !b_cookie_found ) {
return null;
}
}
if (Get_Cookie(name)) {
var domain = domain || document.domain;
var path = path || "/";
document.cookie = name + "=; expires=" + new Date + "; domain=" + domain + "; path=" + path;
}
}
catch(err) {}
}; <a href="#" onclick="clearCookie('__utma','yourdomain.com','/');clearCookie('__utmb','yourdomain.com','/');clearCookie('__utmc','yourdomain.com','/');clearCookie('__utmz','yourdomain.com','/');">Clear Cookies</a>
[edited by: IanTurner at 2:07 pm (utc) on May 10, 2012]
[edit reason] Removed link - unecessary to the thread [/edit]
Disruption to our website
We’re sorry that some users may have had problems accessing our site over the past few days. This was due to an attack to our site. The website itself contains no sensitive information and was not damaged.
We will continue to try and keep our website available to all our users. Our helpline is available on 0303 123 1113 or 01625 545745 between 9am and 5pm.
[edited by: kapow at 11:49 am (utc) on May 22, 2012]
Had some info from AffiliateWindow today (one of the networks i use) with a 25 page document
your raw log files will tell you how many hits that page receives
$statusCode to a three digit number before calling the include file when calling it from your error document pages. Set $statusCode to "nocookie" or similar when calling it from your "no cookies" page. <?php
# Error Event Logging 2012-05-24 (logger.php)
$oldSetting= ignore_user_abort( TRUE );// otherwise can screw-up logfile
if( !empty( $GLOBALS[ '_SERVER' ])) {
$_SERVER_ARRAY= '_SERVER';
} elseif( !empty( $GLOBALS[ 'HTTP_SERVER_VARS' ])) {
$_SERVER_ARRAY= 'HTTP_SERVER_VARS';
} else {
$_SERVER_ARRAY= 'GLOBALS';
}
$requestHost= ${$_SERVER_ARRAY}[ 'SERVER_NAME' ];
if(stristr($requestHost, 'example.co.uk')) {
if(stristr($requestHost, 'dev')) {
define( '_DIRECTORY', '/var/www/vhosts/example.co.uk/subdomains/dev/httpdocs/includes/logfiles/' );
$site = 'dev';
} else if(stristr($requestHost, 'www')) {
define( '_DIRECTORY', '/var/www/vhosts/example.co.uk/httpdocs/includes/logfiles/' );
$site = 'www';
} else if(!stristr($requestHost, 'dev') && !stristr($requestHost, 'www')) {
define( '_DIRECTORY', '/var/www/vhosts/example.co.uk/httpdocs/includes/logfiles/' );
$site = 'www';
}
}
define( '_LOGFILE','errorlog' . date('-Y-m-') . $site . '-' . $statusCode . '.txt' );
#define( '_LOGFILE','errorlog' . date('-Y-m-') . $site . '.txt' ); // all in one
define( '_LOGMAXLINES','3000' );
global ${$_SERVER_ARRAY};
$logFile= _DIRECTORY . _LOGFILE;
$datetime= date( 'Y-m-d H:i:s O' );
$remoteIP= ${$_SERVER_ARRAY}[ 'REMOTE_ADDR' ];
$requestURI= ${$_SERVER_ARRAY}[ 'REQUEST_URI' ];
$referer= ( isset( ${$_SERVER_ARRAY}[ 'HTTP_REFERER' ]))
? ${$_SERVER_ARRAY}[ 'HTTP_REFERER' ]
: '<unknown referer>';
$userAgent= ( isset( ${$_SERVER_ARRAY}[ 'HTTP_USER_AGENT' ]))
? ${$_SERVER_ARRAY}[ 'HTTP_USER_AGENT' ]
: '<unknown user agent>';
if(preg_match('#(Opera\ [0-9]+\.[0-9]+)#',trim($userAgent), $extracted)) {
$agent = $extracted[1];
} elseif(preg_match('#^(Opera[^(\ ]+)#',trim($userAgent), $extracted)) {
$agent = $extracted[1];
} elseif(preg_match('#^(Xenu.*)#',trim($userAgent), $extracted)) {
$agent = $extracted[1];
} elseif(preg_match('#compatible;\ ([^;]+)#',$userAgent, $extracted)) {
$agent = $extracted[1];
} elseif(preg_match('#^([^\ ]+\ )+([^\(\)]+)#',trim($userAgent), $extracted)) {
$agent = $extracted[2];
} else {
$agent = '<see notes>';
}
$remoteIP= str_pad($remoteIP, 15);
$agent= str_pad($agent, 22);
$requestHost= str_pad($requestHost, 26, " ", STR_PAD_LEFT);
$requestURI= str_pad($requestURI, 80);
$referer= str_pad($referer, 110);
$userAgent= str_pad($userAgent, 120);
$logLine= $datetime . " - " . $remoteIP . " - " . $agent . " - ". $statusCode . " - ". $requestHost . " - ". $requestURI . " - ". $referer . " - ". $userAgent . "\n";
$log= file( $logFile );// flock() disabled in some kernels (eg 2.4)
if( $fp = fopen( $logFile, 'a' )) {// tiny danger of 2 threads interfering; live with it
if( count( $log ) >= _LOGMAXLINES ) {// otherwise grows like Topsy
fclose( $fp );// fopen,fclose put close together as possible
while( count( $log ) >= _LOGMAXLINES ) array_shift( $log );
array_push( $log, $logLine );
$logLine= implode( '', $log );
$fp= fopen( $logFile, 'w' );
}
fputs( $fp, $logLine );
fclose( $fp );
}
exit();
ignore_user_abort( $oldSetting );
?> [edited by: g1smd at 1:32 pm (utc) on May 22, 2012]