Hej NG
Jeg har rodet længe med et mærkeligt sessionsproblem i forbindelse med 
captcha (sikkerhedsbilleder til spambeskyttelse af formularer).
Hovedscriptet har en kontaktformular som brugeren kan udfylde. For at 
undgå spam skal der indtaste nogle "forvrængede" bogstaver.
Disse bogstaver dannes af et andet script i form af et png-billede. 
Scriptet gemmer det dannede ord i en sessionsvariabel, således at 
hovedscriptet kan sammenligne det indtastede ord med sikkerhedsordet.
Formen i hovedscriptet ser sådan ud (simplificeret):
<form method="post">
Indtast venligst disse sikkerhedsbogstaver:<br>
<img src="freecap.php"><br>
<input name="captcha" type="text"><br>
<input type="submit" value="ok">
</form>
Inde i freecap.php, som kaldes indirekte via <img>, sættes 
sessionsvariablen 'captcha' med det ord der sendes tilbage som en png.
Når formen sendes afsted, sker captcha-tjekket således:
session_start();
if($_POST['captcha']==$_SESSION['captcha'])
   echo "Du har tastet rigtigt";
else
   echo "Du har tastet forkert, prøv venligst igen";
// Der dannes en ny captcha som brugeren kan prøve med
Sådan set skulle der ikke være nogen ben i det. Der er da heller ikke på 
min lokale pc. Men på webhotellet fungerer det ikke!
Sessionsvariablen bliver sat korrekt første gang. Men hvis man så taster 
forkert, kaldes freecap.php en gang til, så der sendes et nyt billede 
tilbage til browseren. Samtidig opdateres sessionsvariablen med det nye ord.
Men i hovedscriptet indeholder sessionsvariablen stadig den gamle værdi. 
Hvis man prøver nogle gange, måske 4-5, opdateres variablen pludselig, 
men fastholder så sin værdi igen.
Nu kommer så det mærkelige: Hvis jeg i stedet for at opdatere formen 
åbner captcha-billedet alene (via højreklik -> vis billede) så opdateres 
sessionsvariablen korrekt.
Det er altså som om sessinshåndteringen er anderledes/upålidelig når det 
sker indirekte via et billede.
Desuden er problemet værre i FF end i IE, hvor det optræder sjældnere.
Er der nogen som har et bud? Jeg kommer gerne med flere detaljer hvis 
det hjælper!
Takker og bukker 
 
Martin