Te hago un ejemplo de cómo quedaría un código PHP simplificado al máximo.
- Utiliza un array con la lista de posibles colores y selecciona uno aleatoriamente
- Utiliza funciones de sesión propias de PHP
Se me han ocurrido varias opciones:
- Que el script PHP genere la hoja CSS personalizada para la sesión, pero no me gusta porque el CSS entonces se vuelve más complejo de mantener..
- Que el script PHP genere el HTML escribiendo directamente el color en el HTML, pero no me parece limpio porque no separa la capa de presentación de los datos.
- Que el script PHP genere una función Javascript que cambia el color de la página al mostrarse. He elegido esta opción.
También he puesto un pequeño contador a la sesión para hacer pruebas.
<?php
// Iniciar SESSION
session_start();
if (!isset($_SESSION['color'])) {
// Si la variable de sesión no existe, se fija el color e
// inicia el contador de cargas:
$colores = array("red","orange","yellow");
$_SESSION['color'] = $colores[array_rand($colores,1)];
$_SESSION['cont'] = 1;
} else {
// Si ya existía, solo se incrementa el contador:
$_SESSION['cont']++;
}
?>
<html>
<script>
function changeBackground() {
document.body.style.background = '<?php print($_SESSION['color']);?>';
}
</script>
<body onload="changeBackground();">
Se ha mostrado el color <?php print($_SESSION['cont']);?> veces.
</body>
</html>
Para destruir la sesión y hacer pruebas puedes ejecutar:
<?php
session_start();
var_dump($_SESSION);
session_destroy();
?>