Respecto a la última versión de código que has puesto en los comentarios, el problema que es están mal llamadas las variables globales de PHP.
$REQUEST debe ser $_REQUEST
$SESSION debe ser $_SESSION
y lo mismo para todas las globales:
$_SERVER
$_REQUEST
$_POST
$_GET
$_FILES
$_ENV
$_COOKIE
$_SESSION
Para darte una explicación de lo que está pasando:
Lo que quieres que pase: generar una imagen basada en un texto aleatorio y guardar ese texto en la sesión de la conexión para en el siguiente paso se pueda comprobar si el usuario ha introducido correctamente el texto.
Lo que está pasando: en lugar de guarda el valor del texto generado en una variable de sesión (global) la estás guardando en una array que llamas $SESSION
y cuyo ámbito de existencia no supera la primera ejecución, por lo que en el segundo paso ese array no existe y te resulta imposible hacer la comparación.