Don't use the session for this. Since HTTP is a stateless protocol, you should avoid using session to the greatest lengths possible. Since the user is clicking on a link, it only makes sense making that link convey the information you're after. ust pass any data you want in the URL, e.g. as a a query string parameter;
Then you can just query for this in the page template like so:
<?php
/*
Template Name: Varying Background Color Template
*/
$bgcolor = $_GET['bgcolor'];
switch ($bgcolor) {
case 1:
// Change the background to color 1
break;
case 2:
// Change the background to color 2
break;
case 3:
// Change the background to color 3
break;
}
?>
If you think query string parameters are ugly, you can use path info instead, but this requires you to create a special case rewrite rule that makes the path info "invisible" to WordPress so it doesn't think it's the slug of a page. Whether you want or need this depends on how your permalink configuration in WordPress is.