No bo błędów tutaj natrzaskałeś chyba z 8

Po kolei.
Plik index.php. Skąd tam Ci się wzięła zmienna $slowa? Powinno być raczej $plik, bo tak nazwałes tablicę słów pobranych z pliku.
Po drugie - jeśli masz jedną zmienną formy typu GET, to możesz wprawdzie zadeklarować URL token.php?id, ale wygodniej jest token.php?id=jakiesid, nie ograniczasz się... No ale niech Ci będzie. Poza tym jest ok.
Plik token.php. Wszystko ok, ale spójrz... Znów generujesz liczbę i losujesz z tablicy słów inne słowo. Po co? Ma być właśnie to samo, które już wylosowałes w pliku index.php w linii tworzącej zmienną $id. Przeciez po to przekazujesz do token.php zmienną, by z niej właśnie skorzystać - a Ty w ogóle nie używasz $_GET, tylko losujesz znów inną liczbę. Jak to miałoby działać?
Plik sprawdz.php. Tu jest ok (prawie), poza tym, że powinieneś używać funkcji
trim" title="Zobacz w manualu PHP" target="_manual do przycinania spacji przed i po ciągu, bo różnie wyglądają outputy zwaracane przez file - w tym przypadku akurat masz spacje z obu stron ciągu i nie będzie działać bez tego. Używaj funkcji typu
var_dump" title="Zobacz w manualu PHP" target="_manual do rozwiązywania problemów - gdy coś nie działa, na przykład (tak jak w tym przypadku) porównujesz dwie zmienne i za każdym razem wychodzi Ci, że nie są równe, wystarczy przecież wyświetlić obydwie i zobaczyć, w czym tkwi problem... To logiczne rozwiązanie problemu - polecam, nie trzeba z każdą pierdołą na forum przychodzić.
Tak na szybko kod:
<?php
$wys=100;
$szer=120;
$obrazek=ImageCreate($szer,$wys);
$kolor=array('czerwony' => ImageColorAllocate
($obrazek, 255, 0, 0), 'zielony' => ImageColorAllocate($obrazek, 0, 255, 0),
'niebieski' => ImageColorAllocate($obrazek, 0, 0, 255));
ImageFill($obrazek, 1, 1, $kolor[czerwony]);
ImageString($obrazek, 5, 50, 50, $zaw[$_GET[0]], $kolor[niebieski]);
header("Content-type: image/gif"); imageGIF($obrazek);
?>
<?php
$id=$_POST['id'];
$napisane=$_POST['token'];
$plik=fopen('token.txt', 'r'); if(trim($zaw[$id])==$napisane) {
}
else
{
}
?>
<form action="sprawdz.php" method="post"><input type="text" name="token"><br>
Przepisz tekst:<br>
<?php
echo '<img src="token.php?'.$id.'"></img>'; ?>
<br>
<input type="hidden" name="id" value="
<?php echo $id; ?>" />
<input type="submit" value="Zapisz"></form>
Pozdrawiam, Krzysztof.
P.S. Jeśli nie musisz (tak jak w tym przypadku), to nie otwieraj pliku 3 razy, to znacznie spowalania działanie aplikacji... Wystarczy tutaj raz otworzyć, pomyśl jak to rozwiązać, by działało szybciej (różnicy w czasie działania może nie zobaczysz, ale toporny kod jest bez sensu).