bo pewnie nie zadeklarowałeś na początku zmiennej background i w ogóle posty wysyłasz submitem gdzie IE6 nie przeczyta tego. Ja bym to zrobił tak:
<form action="view?id='.$_GET['id'].'" method="POST">
<input type="hidden" name="colour" value="blue" >
<input type="submit" name="niebieski" value="Niebieski" >
</form>
<form action="view?id='.$_GET['id'].'" method="POST">
<input type="hidden" name="colour" value="yellow" >
<input type="submit" name="yellow" value="Żółty" >
</form>
<?php
'blue' => '#0060C7',
'yellow' => '#FDFFBD',
'standard' => '#0060C7'
);
if(isset($kolory[$_POST['colour']])) { $background = $_SESSION['colour'] = $kolory[$_POST['colour'];
} elseif(isset($_SESSION['colour'])) { $background = $_SESSION['colour'];
} else {
$background = $kolory['standard'];
}
Mieszaj kod HTML - przy większych aplikacjach bardzo to pomaga czyli: <?php session_start(); ?> tutaj jakis html <?php if(isset($cc)) { ?> costam <?php } else { ?> cośtam <?php } ?>
Nie używaj tak submitów, najlepiej hiddenami to załatwiać i nie twórz na stronie tylu formularzy - jak byś miał 100 kolorów to 100 formularzy robisz - strasznie dużo strona będzie zajmować... (jak nie masz jak tego zrobić w html to wartości przypisuj do obiektów javascript i podstawiaj do jednego hiddena - javascript jest super

)
mam nadzieję że pomogło
Acha, mogą być literówki bo kodu nie sprawdzałem