Realmente ese mensaje que dás de "caracter generado y caracter en la sesión" no sé como lo haces (podrías indicar el codigo que afecta a esa parte por lo menos).
pero .. te comento que NO es cierto que.
<?
session_name("algo");
session_start();
$variable="QSD";
$_SESSION['codigo']=$vaiable;
Si tu haces echo $variable en ese punto y echo a $_SESSION['codigo'] .. el valor es el mismo pero realmente NO es el valor de lo que la variabel de sesión va a almacenar o almacene.
Las sesiones sólo quedan disponibles cuando se genera una petición al servidor o recarga de página en general . .es ahí cuando se "envian" al servidor y se registran (Graban).
Cita: He hecho un echo con el valor que se genera y luego otro con el que se mete a la session, pero curiosamente, si envias el formulario (escribiendo el codigo del captcha bien o mal) y luego vuelves (con el boton volver que es como un link al mismo fichero, nada de history.back() ni esas cosas), pues el codigo que se genera y el introducido en sesion(que esta bien, porque al introducirlo bien o mal se debe generar uno nuevo), pues no coincide con el del captcha. Pero a la segunda vez que lo haces si coincide.
Parece que el valor en tu sesión queda en mayusculas todo .. y así no coincide nunca?.
Un saludo,