Hola Rasec101, tu código me funciona perfectamente en un server Linux y la variable de session coge valor correctamente.
No sé en qué condiciones estás trabajando, no sé si has visto que hay una variable indefinida, además el archivo bgcaptcha.gif debe existir en la carpeta donde se ejecuta el script, prueba esto:
Código PHP:
<?php
session_start ();
function randomText($length) {
$key = "";
$pattern = "1234567890";
for($i = 0; $i < $length; $i ++) {
$key .= $pattern {rand ( 0, 4 )};
}
return $key;
}
$_SESSION ['tmptxt'] = randomText ( 4 );
$captcha = imagecreatefromgif ( "bgcaptcha.gif" );
$colText = imagecolorallocate ( $captcha, 0, 0, 0 );
imagestring ( $captcha, 5, 16, 7, $_SESSION ['tmptxt'], $colText );
header ( "Content-type: image/gif" );
imagegif ( $captcha );
?>
dónde lo único que cambia es la definición de $key. Si no estás trabajando con error reporting e_all, no verás el warning y tampoco la imagen, a ver si te sirve. Un saludo