Okay, if you want to do this with PHP:
0) First, a session must be started on every page or this won't work because a session must be started to either initiate the cookie or access it on next page.
<?php session_start(); ?>
1) You have to write a PHP script that starts in the HEAD tag:
<?php
if (isset($_REQUEST['theme']) ) { $_REQUEST['theme'] = $css1; echo "<link rel='text/stylesheet' href='path/to/{$css1}.css'>";
else echo "<link rel='text/stylesheet' href='path/to/default.css'>";
?>
Okay so now if there is a cookie with a parameter called 'theme' set, the value of that parameter will be served as a css file instead of default.css.
2) Now, you need to give the user an option to switch themes, probably via a drop-down form.
<?php
echo "<form name='myForm'><select onchange='this.form.submit()' name='theme'>";
echo "<option value='theme1'>Theme 1</option>";
echo "<option value='theme2'>Theme 2</option>";
echo "</select></form>";
?>
Note: I didn't actually run this code, I am sure there are errors but that's just a general overview of how I would do it.
To troubleshoot: make sure the form is being submitted. You can use print_r($_REQUEST); to dump out the contents of the cookie for troubleshooting. Then make sure the path to the CSS file is correct. Finally, once you've got it all working, make sure you're not getting a false result from the CSS file being cached. For instance, in Chrome you can open "Inspect Element" developer tool which will fully refresh the page every time.